2012-08-15 76 views
0

我想POST POST動態添加的文本框的值。 如何爲這些新文本框指定名稱[作爲數組]? 如何將這些數組值傳遞給.php文件?如何獲取Java腳本和PHP中動態添加的文本框的值

下面的代碼添加texbox dynmically

HTML部分:

<input type="checkbox" name="bugs" value="1">Check this if bugs are not available </br> </br> 
<INPUT type="button" value="Add Row" onclick="addBugRow('bugTable')" /> 
<INPUT type="button" value="Delete Row" onclick="deleteBugRow('bugTable')" /> 

<TABLE id="bugTable" width="350px" border="1"> 
<TR> 
      <TD></TD> 
      <TD> No. </TD> 
      <TD> PCR </TD> 
     <TD> Description </TD> 

</TR> 
<TR> 
      <TD><INPUT type="checkbox" name="chk"/></TD> 
      <TD> 1 </TD> 
      <TD> <INPUT type="text" name="pcr[]" size="6"/> </TD> 
     <TD><textarea cols="75" rows="5" name="bugdata[]"> </textarea> </TD> 

</TR> 
</TABLE> 

Java腳本部分

function addBugRow(tableID) { 

      var table = document.getElementById(tableID); 

      var rowCount = table.rows.length; 
      var row = table.insertRow(rowCount); 

      var cell1 = row.insertCell(0); 
      var element1 = document.createElement("input"); 
      element1.type = "checkbox"; 
      cell1.appendChild(element1); 

      var cell2 = row.insertCell(1); 
      cell2.innerHTML = rowCount; 

      var cell3 = row.insertCell(2); 
      var element2 = document.createElement("input"); 
      element2.type = "text"; 
     element2.name = "pcr[]"; // text field names in array 
     element2.size = 6; 
      cell3.appendChild(element2); 

     } 

PHP的一面,我需要添加文本框的數量值和他們的價值觀。

PHP部分:

foreach($_POST['pcr'] as $key=>$value) 
echo $key.' '.$value; 
+0

是否要發佈生成文本框的代碼? – andrewsi 2012-08-15 18:52:27

+0

恩,如果他們是表格的一部分,他們應該在表格提交時發送。你在問如何爲元素分配一個名稱值? – thatidiotguy 2012-08-15 18:54:27

+0

如何生成文本框?發佈代碼將提供更有用的迴應.. – burmat 2012-08-15 18:59:16

回答

2

添加名稱來動態創建的元素:

var Input = document.createElement("input");  
Input.setAttribute("name", "ElementNameGoesHere"); 

至於張貼的輸入作爲數組..是這是可能的像這樣:

輸入命名:

<input name="array[]" /> 
<input name="array[]" /> 

PHP:

$_POST['array'][0] // First Input 
$_POST['array'][1] // Second Input 
+0

我可以將它命名爲數組並將相同的數組POST到PHP代碼。 – Ajay 2012-08-16 02:53:52

+0

剛剛測試過,將包括此修改回答。請接受我的答案,如果這對你有用:D – trevorkavanaugh 2012-08-16 17:09:48

1

如果你正在使用jQuery:

var count = $("input[name*='newInput']").length; 
var hidden = $("<input>").attr("type", "hidden") 
         .attr("name", "newInput[" + count + "]") 
         .val("hiddenStuff"); 
$("#someId").append(hidden); 

這應該張貼蠻好PHP。只要您生成您知道要在PHP端查找的可預測名稱,就應該很容易地將數據恢復出來。

+0

在PHP方面,我需要獲取添加的文本框數量值及其值。我可以使用數組來命名它們並獲取它們的值。 – Ajay 2012-08-16 02:56:06

+0

當然!沒有理由不能使用數組作爲名稱,以便獲得使用PHP的$ _POST全局變量創建的數組。你甚至可以修改代碼,這樣它就可以很容易地自動添加「nth」項。我會更新我的答案。 – mcarpenter 2012-08-16 22:43:27