如何在提交后将变量从javascript传递到php


how to pass a variable from javascript to php after submit

我有一个脚本,用文本字段将行添加到表中每次我点击添加行:

<script language = "javascript">
var x = 0;
function addRow(){
    var tbody = document.getElementById(tabID).getElementsByTagName("tbody")[0];
    var row = document.createElement("tr")
    var data1 = document.createElement("td")    
    var data2 = document.createElement("td") 
    var element = document.createElement("input");
    element.setAttribute("type", type);
    element.setAttribute("name", type);
    element.setAttribute("id", "Name"+x);
    element.setAttribute("style","width:95px");
    var element1 = document.createElement("input");
    element1.setAttribute("type", type);
    element1.setAttribute("name", type);
    element1.setAttribute("id", "Address"+x);
    element1.setAttribute("style","width:95px");
    var foo = document.tbody;
    data1.appendChild(element)
    data2.appendChild(element1)
    row.appendChild(data1)
    row.appendChild(data2)
    tbody.appendChild(row)
    x++;
}
</script>

我如何在提交后将变量x的值传递给php,这样我就可以计算我应该做多少循环了?

<input type="hidden" name="count_rows" value="0">添加到表单中,并在提交表单时将其值更新为行数。

您需要在表单中创建一个输入隐藏字段,并使用计数器值对其进行初始化。您可以使用如下的javascript

 var input = document.createElement("input");
 input.setAttribute("type", "hidden");
 input.setAttribute("name", "counter");
 input.setAttribute("value", x);

正如Vinay已经建议的那样。利用输入元素的名称和值属性。您可以尝试以下代码片段。

<?php
if(isset($_POST['submit'])) 
{ 
    print_r($_POST);
    $counter= $_POST['counter'];   
    print_r("counter value : <b>". $counter. "</b>");
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <input type="hidden" name="counter" value="5"><br>
   <input type="submit" name="submit" value="Submit Form"><br>
</form>