2015-11-18 49 views
-1

我想將輸入字段的數據發佈到PHP。我有一個jQuery腳本,它添加了新的輸入字段(通過用戶單擊按鈕)。所有輸入字段具有相同的名稱input[]。當我提交表單時,我做了var_dump($_POST),我得到的只是其中只有1個項目的數組(第一個輸入是在頁面加載時出現的)。有誰知道從其他輸入字段獲取數據的方式,它們是動態添加的嗎?我需要爲此使用JSON嗎?從Ajax生成的輸入字段(同名)發送數據到PHP

這裏是代碼:

<body> 
<div id="inp"> 
<form action="asd.php" method="POST"> 
     <p><input type="text" name="input[]"></p> 
</div> 
<div id="adddiv"> 
    <input id="add" type="submit" value="+"> 
    <input id="ok" type="submit" value="ok"> 
</form> 
</div> 
</body> 
<script> 
$(document).ready(function(){ 

$('#add').click(function(e){ //adds input fields 
    e.preventDefault(); 
    $('#inp').append('<p><input type="text" name="input[]">&nbsp;<input id="del" type="submit" value="-"></p>'); 
}); 

$('#inp').on('click', '#del', function(e){ // removes input fields 
    e.preventDefault(); 
    $(this).parent('p').remove(); 
}); 

}); 
</script> 

現在的PHP文件:

<?php 
var_dump($_POST); // shows only 1 item in the array 

if(!empty($_POST)){ 
    for($i=0;$i<sizeof($_POST);$i++){ 
    $data = $_POST['input'][$i]; 
    echo '<br>' . $data; 
    } 
} 
?> 

我找到了解決這個:

<div> 
    <form action="process.php" method="POST"> 
     <div id="inp"> 
      <p><input type="text" name="input[]"></p> 
     </div> 
    <div id="adddiv"> 
     <input id="add" type="submit" value="+"> 
     <input id="ok" type="submit" value="ok"> 
    </div> 
    </form> 
</div> 
+0

你的HTML部分是錯誤的,你已經開放的形式標記後關閉div標籤''

其錯誤 –

+0

固定它,但問題仍然是這裏...仍然只有1陣列項目 – JosefPP

+0

這裏更改代碼 –

回答

0

你的HTML壞了,你是關閉中間形式的「#inp」div,從而有效地關閉表單,這就是爲什麼它只發布第一個輸入 嘗試這

<div id="inp"> 
    <form action="" method="POST"> 
     <p><input type="text" name="input[]"></p> 
     <div id="adddiv"> 
      <input id="add" type="submit" value="+"> 
      <input id="ok" type="submit" value="ok"> 
     </div> 
    </form> 
</div> 
</body> 
<script> 
    $(document).ready(function(){ 

     $('#add').click(function(e){ //adds input fields 
      e.preventDefault(); 
      $('#adddiv').before('<p><input type="text" name="input[]">&nbsp;<input id="del" type="submit" value="-"></p>'); 
     }); 

     $('#inp').on('click', '#del', function(e){ // removes input fields 
      e.preventDefault(); 
      $(this).parent('p').remove(); 
     }); 

    }); 
</script> 
+0

固定它,但問題仍然在這裏...仍然只有1項在數組 – JosefPP

+0

請使用我提供的代碼和再次測試,(我確實有效) –

+0

ye thx,標記爲最新答案 – JosefPP