ช่วยดู code ให้หน่อยครับ
$("#submit3").click(function(){
var textVal = $("input:radio:checked").val(); <----------------------------- อยากเอาค่าที่ได้รับจากตรงนี้
$("#d3").html(textVal);
$("#task3").hide();
$("#run3").show();
});
$("#Run3").click(function(){
$("#run3").hide();
$("#d3").hide();;
});
//--------------------------
});
function uzXmlHttp(){
var xmlhttp = false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlhttp = false;
}
}
if(!xmlhttp && document.createElement){
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
//-------------------Calculate-------------
function cal1()
{
var url = 'cal1.php';
xmlhttp=uzXmlHttp();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState==4){
if (xmlhttp.status==200) {
var ret=xmlhttp.responseText;
document.getElementById("complete1").innerHTML=ret;
}
}
}
xmlhttp.open("POST", url);
xmlhttp.setRequestHeader("If-Modified-Since", ""+ new Date().getTime()+"");
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=windows-874');
xmlhttp.send("name="+_________________ ); <------------- ส่งไปให้อีกไฟล์ตรงนี้
}
</script>
คือผมต้องการที่นำค่าจาก checkbox จากที่ชี้ไว้ข้างบน ส่งให้ไปกับอีกไฟล์ โดยวิธีนี้้
แต่พอทำแล้ว การส่งมันผิดพลาดตลอด ผมเลยอยากรูปว่าที่ send จะต้องทำการส่งค่าอย่างไรครับ
ขอบคุณครับ
ตรงส่วนของ
var textVal = $("input:radio:checked").val(); <----------------------------- อยากเอาค่าที่ได้รับจากตรงนี้
$("#d3").html(textVal);
$("#task3").hide();
$("#run3").show();
});
$("#Run3").click(function(){
$("#run3").hide();
$("#d3").hide();;
});
//--------------------------
});
กับ
{
var url = 'cal1.php';
xmlhttp=uzXmlHttp();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState==4){
if (xmlhttp.status==200) {
var ret=xmlhttp.responseText;
document.getElementById("complete1").innerHTML=ret;
}
}
}
xmlhttp.open("POST", url);
xmlhttp.setRequestHeader("If-Modified-Since", ""+ new Date().getTime()+"");
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=windows-874');
xmlhttp.send("name="+_________________ ); <------------- ส่งไปให้อีกไฟล์ตรงนี้
}
มันอยู่คนละฟังก์ชั่นกัน
ถ้าเราลองแก้ยั่งงี้
cal1(textVal)
.......................
.......................
.......................
function cal1(textVal)
......................
......................
......................
xmlhttp.send("name="+textVal); <------------- ส่งไปให้อีกไฟล์ตรงนี้
มันจะได้มั๊ยนะ
ขอบคุณมากๆๆเลยครับ
ถ้าต้องการที่จะใช้ php เรียกใช้ ฟังค์ชั้น javascript โดยที่ส่งค่าตัวแปลจาก php ไปให้ใน javascript ด้วย เราต้องทำอย่างไรครับ
echo "var js_value='$js_value';";
?>
<script>
alert(js_value);
</script>
หรือว่ามีวิธีการส่งค่าตัวแปลจาก php ไปอีกไฟล์รึป่าวครับ โดยไม่ได้ใช้ form ?
แสดงว่าไม่ได้พยายามทำความเข้าใจโค้ดเลย...
หลักการของมันก็แค่ แสดงค่าตัวแปร เท่านั้น
ในตอนเริ่มต้น $js_value ยังไม่มีค่าอะไร กำหนดให้มันก่อนก็ดีครับ
var js_value='xxx'; คือค่าที่ได้จากโค้ด ซึ่งเป็นตัวแปร javscript ส่วนจะเอาตัวแปร js_value ไปใช้ยังไงก็สุดแล้วแต่ความต้องการเช่น
document.location = 'index.php?value=' + js_value;
อ้อ บทความเรื่องนี้มีเขียนบนเว็บครับ ลองหาอ่านดู
ตอนนี้รู้ละครับผมไม่ได้ใส่ echo '<script type="text/javascript">'; มันเลยไม่ส่งไป
ขอบคุณครับ
ผมก็เขียนข้ามไปเองแหละ
คือผมต้องการจะส่งค่าตัวแปลจาก php ไปให้อีกไฟล์หนึ่ง โดยที่เราไม่ต้องคลิกอะไร
เช่นแบบว่า ผมเรียกไฟล์ 2.php ขึ้นมาคำนวนอะไรบางอย่าง โดยajax จากไฟล์ 1.php
แล้วจากนั้นผมจะทำการส่งค่าตัวแปลที่คำนวนไว้นั้น กลับไปให้ไฟล์ 1.php อีกทีอะครับ มันทำได้รึป่าว แล้วต้องทำยังไง
ทำจนเบลอละครับไม่ออกซักที ขอบคุณครับ
1.ใช้วิธี ตามที่ตอบไปแล้ว
2.ใช้ Ajax ส่ง
คำถามให้ข้อมูลมาน้อย แค่บอกว่าจะส่งค่าจาก php โดยไม่ต้องคลิกเท่านั้น ดังนั้น คำตอบที่ 1 ก็เป็นไปตามเงื่อนไขแล้ว (ลองทดสอบรับค่าที่ index.php ดู)
การจะออกแบบใดๆ มันก็ขึ้นกับความต้องการและความจำเป็นเป็นหลัก ว่าสิ่งที่ทำไว้แล้วมีอะไร และ ต้องการอะไร แล้วถึง เลือกใช้วิธีที่เหมาะสม ซึ่งสามารถทำได้จาก 2 วิธีหลัก ข้างต้น (แต่อาจเป็นล้านวิธีเขียน)
ลองให้ข้อมูลที่คิดว่าจำเป็นมาหน่อยครับ
หลังจากคำนวนเสร็จในทันที โดยที่ 1.php รอรับตัวแปล x อยู่ เพื่อที่จะนำค่านั้นไปคำนวนต่อ ซึ่งผมจะทำการรอรับค่าโดย php: $_POST
ตอนนี้ผมก็ทำตามวิธีแรกที่ ส่งตัวแปลจาก php ไปให้ javascript แล้วให้ javascript ส่งไปให้ 1.php แล้วแต่พอรับ
มันกับรับไม่ได้ อาจเกิดจากโค้ดที่ผมใช้ส่งก็ได้ซึ่งตอนนี้ยังลองแก้ไปแก้มาอยู่ครับ ไม่ออกซักที
ทำไมต้องส่งด้วย Javascript ไม่ค่อยเข้าใจ...
ใช้ include ทำแทนได้หรือไม่
เช่น เรียก 2.php เสร็จแล้วก็เอา 1.php มาทำงานต่อ
ผมตอบตามที่อธิบายมานะครับ
2.php เป็นตัวที่ 1.php ส่งค่าไปคำนวณ และเรียกให้มันแสดงผลออกมาในกรอบเ็ล็กในหน้าต่างของ 1.php โดยการใช้ ajax
ซึ่งที่ผมต้องการทำคือ คลิกเลือกข้อมูลจาก 1.php ไปคำนวนจาก 2 3 4 5.... แล้วให้ส่งค่าที่คำนวณจากไฟล์ต่างๆนั้น
กลับมาเก็บไว้ในไฟล์ 1.php เพื่อที่จะเอาไปทำงานต่อ โดยที่หน้า 2 3 4 5 นั้นก็ยังแสดงอยู่ในหน้าเดียวกันของไฟล์ 1.php
คือในหน้านั้นจะเป็นการแสดงผลของทุกไฟล์ ที่อัพเดทออกมาเรื่อยๆ หลังจากกันคลิกเลือกข้อมูลของไฟล์ 1.php
ซึ่งในไฟล์ 2 3 4 5.php นั้นจะเป็นแค่ไฟล์ที่รับค่าจาก 1.php เพื่อทำงานคำนวณและทำการ echo ค่าที่ได้ออกไปเท่านั้นครับ
พอจะเข้าใจบ้างรึเปล่าครับ อธิบายไม่เก่งเท่าไหร่
echo '<script> go(); </script>';
แบบนี้มันถูกรึป่าวครับ ... แต่ผมลองแล้วมันไม่ออก
ละผมไปดูในเน็ต ก็เห็นบางคนเค้าบอกให้ทำแบบนั้น ซึ่งผมทำแล้วไม่ออก
Ajax ปกติแล้วคืนค่ากลับมาเป็น Javascript อยู่แล้ว คือที่ responseText ถ้าเอาตัวแปรมารับค่าก็สามารถเอ่ไปใช้ต่อได้เลย
ถ้าสิ่งที่ต้องส่งกลับมีหลายอย่างก็ยังมีตัวเลือก JSON XML หรือ วิธีอื่นๆให้ใช้
นอกจากนี้อาจมีบางสิ่งที่เธอยังไม่รู้ คือ Javascript ในหน้าที่ Ajax เรียกไป จะไม่สามารถใช้งานได้ นอกจากที่ผูกกับ event อาจมีปัญหาในกรณีนี้ก็ได้ ที่ทำให้ไม่สามารถทำงานต่อได้
ลองอ่านบทความบนเว็บประกอบ ครับ ถ้าจะใช้ Ajax คงมีอีกหลายอย่างที่ต้องเรียนรู้