2013-07-06 142 views
3

从我刚才的问题counting the rows in html table using php这个问题如下。 因为我没有工作的解决方案,我想尝试一种新的方式,但不知道如何实现它。 我分配使用Javascript添加唯一的ID给每个动态记录。所以Javascript中的count变量存储HTML表格中存在的行数。当我提交表格时,它由savedata.php进行处理。是否有可能每个表单提交时自动传递JavaScript变量计数savedata.php通过JavaScript变量PHP表单提交

以下是我的Javascript文件的简短版本,用于为动态创建的行的元素创建唯一的ID。

var count=2; 

function addRow() 
{ 


var table=document.getElementById("studenttable"); 
var row=table.insertRow(-1); 
var cell15=row.insertCell(14); 

var ipt8 = document.createElement('input'); 
    ipt8.setAttribute("type", "hidden"); 
    ipt8.id = "text" + count; 
    ipt8.name = "htmlrow[]";  
    ipt8.value = count;   
    cell15.appendChild(ipt8); 
count++; 
} 

每次添加一个新行,算增量,所以只是把它传递给PHP文件将允许获得HTML表格的行数。我想在每次提交表单时自动执行此操作。

回答

2

添加这个表单里面..

<input name="NumRows" id="NumRows" type="hidden" value="0"/> 

然后修改你的JS更新值...

document.getElementById("NumRows").value = count; 

然后,在你的PHP你可以做...

$NumRows = $_REQUEST['NumRows']; 

请注意,如果由于某种原因,NumRows不与形式一起传递(不太可能在这里,但可能在别处)t母鸡,你应该在PHP这样做...

$NumRows = isset($_REQUEST['NumRows'])?$_REQUEST['NumRows']:0; 

这意味着 “如果$_REQUEST['NumRows']设置,使用它,否则设置$NumRows 0”

+0

计数值我不需要此输入字段添加到每一行。对 ? – akashaggarwaal

+0

非常感谢。终于完成了。我想知道如何在没有Ajax的情况下做到这一点,并且您找到了我一个完美的解决方案。再次感谢。 – akashaggarwaal

+1

不是 - 每种形式一次:)你非常欢迎,总是很高兴在这里看到新的成员 - 希望我们会看到你更多 – Basic

2

我建议从来没有使用$ _REQUEST,使用POST方法形式_POST $。如果您使用$ _REQUEST你有没有保证,从POST数据,从而导致安全漏洞在脚本中附带的数据。所以最好使用

$NumRows = $_POST['NumRows']; 

访问PHP