2012-07-15 57 views
-1

我有一個表單,有3個下拉選項(<select>),每一個都通過AJAX逐步更新。所有這些工作都很好,並從AJAX中獲得新的價值,並且在頁面源中我也看到了新的價值觀和一切。但是當我提交表單時,我在查詢字符串中看不到由AJAX更新的值。爲什麼這些價值觀不是這種形式?儘管這些值通過AJAX加載得很好。表單不提交來自ajax的值

+0

請提供一些代碼。 – j0k 2012-07-15 22:07:07

+0

是您的表單METHOD =「GET」或METHOD =「POST」?如果是後者,則除非在表單操作中明確附加到URL,否則您不會在查詢字符串中看到任何內容。否則很難猜測你在做什麼而沒有代碼示例。 – 2012-07-15 22:08:17

回答

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」。