【问题标题】:Handling unknown number of values in PHP file处理 PHP 文件中未知数量的值
【发布时间】:2009-12-21 20:29:05
【问题描述】:
将提交数据的表单将有 10 到 100 个值发送到 PHP 文件。输入的数量存储在我的 javascript 函数中名为 count 的变量中,但我不知道如何将其值传输到我的 PHP 文件。
我的另一个想法是有一个检测空值的 while 循环,并在 while 循环内有一个计数器来保持计数。
我应该如何处理?
【问题讨论】:
标签:
php
javascript
forms
get
【解决方案1】:
无需提交计数。您可以将动态数量的值作为数组提交。您可以在 name 属性中使用 PHP 数组表示法:
Input 1: <input type="text" name="myvar[]" />
Input 2: <input type="text" name="myvar[]" />
...
Input n: <input type="text" name="myvar[]" />
在 PHP 端,$_REQUEST['myvar'] 将是一个数组。
【解决方案2】:
在不了解您的实现的情况下,我会建议您使用两种选择中的后者:使用 PHP 循环遍历您的 $_POST 数组并计算您拥有的有效值。这是最好的选择,因为它更安全可靠。
【解决方案3】:
我认为可能有一种更“正确”的方法来做到这一点,但我会做的(不知道更好的方法)是有一个隐藏的表单元素,比如
<input id="hidden_count" type="hidden" name="count" value="" />
然后有一个名为 onsubmit 的函数,它设置这个值并返回 true 来告诉表单继续
(使用 jQuery)
function onSubmitFunc(){
$('#hidden_count').val(count);
return true;
}
我确信有一个更优雅的解决方案,但这应该可以满足您的需求。
【解决方案4】:
如果您可以访问 Javascript,目前最简单的方法是在客户端将您的数据转换为 JSON,将其作为单个字符串变量发送到服务器,然后在服务器上使用 json_decode 获取返回正确格式的值。您可以对表单上的提交事件做出反应,让 Javascript 在发送数据之前计算 JSON。
否则,您可以让 Javascript 将字段数输出到表单中的特定隐藏变量。然后,服务器可以读取该值,并在其输入中通过键查找数据。
【解决方案5】:
我猜你使用 javascript 来创建额外的输入元素,如果你只是命名升序,你可以使用 count 来循环 $_POST 数据。或者使用隐藏元素表单来计算新的输入元素并将其发布,这样你就有了正确的数字,并且知道你应该计算多长时间。
【解决方案6】:
也许我没有得到这个,但如果你的 JS 文件中的 count 对应于发送到你的 PHP 文件的 form 中的 input 元素的数量,为什么不在服务器端 count() 它们.数据将在$_POST 数组中。