2014-04-07 76 views
0

這是我的帶有form和javascript/ajax函數的html。所有的文本字段值都被傳遞給test.php。當我這樣做時,如果我輸入前三個文本框,那麼test.php將成功顯示錶單值。但另一方面,如果我填充所有四個文本字段併發送,則不會發生任何事情。因爲,我是編程新手,我無法解決這個問題。我會感謝解決這個問題。JavaScript/ajax將所有表單文本字段值傳遞給php,但不是最後一個文本字段值

#form.html 

    <html> 
    <SCRIPT language="javaScript"> 

    function sendData(){ 
       if (window.XMLHttpRequest){ 
        xmlhttp = new XMLHttpRequest(); 
        } 
       else 
        { 
        xmlhttp = new ActiveXobject ('Mircosoft.XMLHTTP'); 
        } 

       xmlhttp.onreadystatechange = function(){ 
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
        { 
         document.getElementById('message').innerHTML = xmlhttp.responseText; 
        } 
       } 

       var i=0; 
       var arr = new Array(); 

       while ((document.getElementById(i).value)) { 
       if ((document.getElementById(i).value)!=""){     
        var activity = document.getElementById(i).value;    
        arr[i] = activity; 
       }   
       i++; 
       } 

       var params = 'activity='+JSON.stringify(arr); 
       xmlhttp.open('POST','test.php', true); 
       xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 

       xmlhttp.send(params); 
       document.getElementById("message").innerHTML = "Sending...";   
       } 

       </script> 

    <form action="#" method="POST"> 
    <tr>Name1:<td> <input type="text" id="0"/> </td></tr><br> 
    <tr>Name2:<td> <input type="text" id="1"/> </td></tr><br> 
    <tr>Name3:<td> <input type="text" id="2"/> </td></tr><br> 
    <tr>Name4:<td> <input type="text" id="3"/> </td></tr><br> 
    <input type="button" value="Send" onclick="sendData()";/> 
    </form> 

    <div id="message">    
    </div> 

    </html> 

這是將顯示錶單值的test.php文件。

#test.php 
    <?php 
    $activity = $_POST['activity']; 
    $activity = json_decode($activity); 

    if (is_array($activity)){ 
     foreach ($activity as $value){ 
      echo $value."<br>"; 
      } 
     } 
    else { 
     echo "error"; 
    } 
    ?> 
+1

這是因爲你的'while'循環有缺陷,爲什麼不使用常規'for'循環代替。 – adeneo

+0

'

相關問題