สอบถามผู้รู้ เป็นเพราะอะไร
อยากสอบถามเรื่องการส่งค่าไปหน้าอื่นและส่งค่ากลับมาหน้าเดิมทำไมเราถึงเรียกใช้ตัวแปรนั้นๆไม่ได้คะคือไม่มีค่าไรส่งกลับมาเลยในตัวแปรนั้น
โค็ตดังนี้
ส่งค่า h_inputdateregis,h_sub1 ไปยังหน้า post2.php
<input name="h_inputdateregis" type="text"class="input_left" id="h_inputdateregis" size="4" maxlength="4" value="2004"/>
<input name="h_sub1" type="text" class="input_left" id="h_sub1" size="4"maxlength="4"readonly="" value="0303"/>
<span id="mySpan"></span>////เอาค่ามาโชว์ในช่องนี้
function doCallAjax(){
$('#mySpan').html("Now is Loading...");
var pmeters = 'myName='+document.getElementById("h_inputdateregis").value+document.getElementById("h_sub1").value;
var html = $.ajax({
async:false,
cache:false,
type:'POST',
data: pmeters,
url: 'post2.php',
dataType: "html",
success:function(data){
$('#mySpan').html(data);
}
});
}
</script>
หน้า post2.php
$_POST["myName"];
มาแยกค่าเพื่อคิวรี่ใน db
<table width="453" border="0" cellpadding="2" >
<tr>
<td> <input name="h_inputdateregis" type="text"class="input_left" id="h_inputdateregis" size="4" maxlength="4" readonly="" value="<?=$year?>"/> - <input name="h_sub1" type="text" class="input_left" id="h_sub1" size="4"maxlength="4"readonly="" value="<?=$group?>"/> - <input name="inputgennumber" type="text" class="input_left" id="inputgennumber"size="4" maxlength="4" value="<?=$run_no?>"> - <input name="inputgennumber_sub" type="text" id="inputgennumber_sub" class="input_left"size="3" maxlength="3" value="<?=$series_no?>" /></td>
</tr>
</table>
สคริปที่เอาค่า h_inputdateregis,inputgennumbe,inputgennumber_sub ไปแสดงค่าตรง <span id="mySpan"></span>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjaxsub() {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'post_sub.php';
var pmeters = 'myName='+document.getElementById("h_inputdateregis").value+document.getElementById("h_sub1").value+document.getElementById("dest_0").value+document.getElementById("inputgennumber_sub").value;
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
/*
HttPRequest.onreadystatechange = call function .... // Call other function
*/
}
โค็ตดังนี้
ส่งค่า h_inputdateregis,h_sub1 ไปยังหน้า post2.php
<input name="h_inputdateregis" type="text"class="input_left" id="h_inputdateregis" size="4" maxlength="4" value="2004"/>
<input name="h_sub1" type="text" class="input_left" id="h_sub1" size="4"maxlength="4"readonly="" value="0303"/>
<span id="mySpan"></span>////เอาค่ามาโชว์ในช่องนี้
function doCallAjax(){
$('#mySpan').html("Now is Loading...");
var pmeters = 'myName='+document.getElementById("h_inputdateregis").value+document.getElementById("h_sub1").value;
var html = $.ajax({
async:false,
cache:false,
type:'POST',
data: pmeters,
url: 'post2.php',
dataType: "html",
success:function(data){
$('#mySpan').html(data);
}
});
}
</script>
หน้า post2.php
$_POST["myName"];
มาแยกค่าเพื่อคิวรี่ใน db
<table width="453" border="0" cellpadding="2" >
<tr>
<td> <input name="h_inputdateregis" type="text"class="input_left" id="h_inputdateregis" size="4" maxlength="4" readonly="" value="<?=$year?>"/> - <input name="h_sub1" type="text" class="input_left" id="h_sub1" size="4"maxlength="4"readonly="" value="<?=$group?>"/> - <input name="inputgennumber" type="text" class="input_left" id="inputgennumber"size="4" maxlength="4" value="<?=$run_no?>"> - <input name="inputgennumber_sub" type="text" id="inputgennumber_sub" class="input_left"size="3" maxlength="3" value="<?=$series_no?>" /></td>
</tr>
</table>
สคริปที่เอาค่า h_inputdateregis,inputgennumbe,inputgennumber_sub ไปแสดงค่าตรง <span id="mySpan"></span>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjaxsub() {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'post_sub.php';
var pmeters = 'myName='+document.getElementById("h_inputdateregis").value+document.getElementById("h_sub1").value+document.getElementById("dest_0").value+document.getElementById("inputgennumber_sub").value;
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
/*
HttPRequest.onreadystatechange = call function .... // Call other function
*/
}
ถ้าจะให้เดา...เธอคงใช้ Ajax ส่งข้อมูลจาก input 2 ตัวแรกในคำถาม ส่งไป post2.php แล้วนำกลับมาแสดงใน mySpan...
ผมเข้าใจว่ามันคงจะแสดงได้ถูกต้องแล้ว แต่ ไม่สามารถอ่านค่า จาก input หลังจากส่งกลับได้
ผมเข้าใจถูกป่าว...
คำตอบนี้ถูกต้องเลยที่เดียว เหตุผลเพราะ
หลังจากส่งกลับมาแสดงผลแล้ว มันจะมี id เดียวกัน 2 ตัว คือ 2 ตัวแรก (สำหรับส่ง) และ 2 ตัวหลัง ที่อยู่ใน mySpan
การแก้ไข ให้เปลี่ยน id ใน post2.php ให้เป็นชื่ออื่น ครับ