我有一個表單,有3個下拉選項(<select>
),每一個都通過AJAX逐步更新。所有這些工作都很好,並從AJAX中獲得新的價值,並且在頁面源中我也看到了新的價值觀和一切。但是當我提交表單時,我在查詢字符串中看不到由AJAX更新的值。爲什麼這些價值觀不是這種形式?儘管這些值通過AJAX加載得很好。表單不提交來自ajax的值
-1
A
回答
0
由於您使用表單,建議您使用post方法,例如
<form method="post">...
確保您的選擇控件是正確命名的,&每個選項都有適當的值。當這些內容到位時,您很可能會看到更新的值,否則您可能需要在您的問題中更明確地發佈更多代碼&。
0
這是形式
<form name="comapre_cars_form" id="comapre_cars_form" action="compare_page.php" method="POST" onSubmit="return compare_val()">
<select style="width:160px;" name="car_make_1" id="car_make_1" onChange="make_1(this.value)">
<option value="" selected="selected">Select Make</option>
<option value="Honda">Honda</option>
<option value="Toyota">Toyota</option>
</select>
<br /><br />
<div id="statediv">
<select style="width:160px;" name="car_model_1" id="car_model_1">
<option value="" selected="selected">---------</option>
</select>
</div>
<img src="resources/images/comp.png" onClick="submit_compare()" style="cursor:pointer;">
</form>
這是AJAX,它工作正常。
function getXMLHTTP() { //function to return the xml http object
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function make_1(countryId) {
var strURL="ajax/find_model.php?country="+countryId;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('statediv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
阿賈克斯值爲從這個文件
<?php $make=($_GET['country']);
require('../connection/conn.php');
mysql_select_db($database, $conn)or die(mysql_error());
$query="SELECT model FROM new_cars_c WHERE make='$make'";
$result=mysql_query($query);?>
<select style="width:160px;" name="car_model_1" id="car_model_1" onchange="model_1('<?php echo $make;?>',this.value)" >
<option value="">Select Model</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value="<?echo $row['model']?>" ><?echo $row['model']?></option>
<? } ?>
</select>
,數據被正確地加載到形式,我選擇模型爲好。但是當我提交表單時,在php頁面上我得到了「car_make_1」,但我沒有得到car_model_1(來自ajax)。
我已經通過Get方法檢查了這個,並且在查詢字符串中我沒有看到提交的「car_model_1」。
請提供一些代碼。 – j0k 2012-07-15 22:07:07
是您的表單METHOD =「GET」或METHOD =「POST」?如果是後者,則除非在表單操作中明確附加到URL,否則您不會在查詢字符串中看到任何內容。否則很難猜測你在做什麼而沒有代碼示例。 – 2012-07-15 22:08:17