2014-04-07 73 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

'

相关问题