php试图接收未知数量的输入

时间:2012-01-05 19:54:02

标签: php jquery html select input

应用程序排序的购物车。  我从一个ajax源(任何来源将是相同的xD)加载和未知数量的服务(未知cuz'他们在数据库中的数量增长)。 它们由一个复选框表示,表明您是否需要该服务,然后显示2个输入,其中一个禁用价格,另一个输入设置数量。

问题是如何将它们全部发送到php进程(总价计算和数据库插入)。我已经使用带有括号的输入属性名称进行多次选择

<select name="something[]">...  ...</select>

我想知道是否有办法实现类似的目标,但需要投入。 或者在mooitems中有一些花哨的jquery插件.- 这是查看我的总失败尝试的页面:(

http://www.micontrol.cl/~mvargas/wordpress/wp-transatacama/reservas-rapidas/form-reservas-pal.php

(首先必须选择一个viaje然后选择一个类别,相关的服务现在将显示,最后调整成人的qtty以便能够提交表单...对不起,流程是一个要求:/)。< / p>

请帮助我提供一些指导,阅读,任何事情:D thx提前。

2 个答案:

答案 0 :(得分:1)

好的,所以如果您要将多个项目发送到服务器,则必须构建HTML以使其类似于以下内容(动态内容显示在方括号[]中):

<input type="checkbox" name="service_[service_id]" value="[service_id]"/> [service_name]<br/>
<input type="text" value="[price]" disabled/>
<input type="text" name="quantity_[service_id]"/>

您必须为由前缀(如服务或数量)和后缀(即该服务的ID)组成的输入构建名称,这样您就可以在PHP中检查它们。

现在在PHP中你可以这样做:

<?
    $prefix = "service_";
    foreach ( $_POST as $name => $value )
    {
        if ( substr( $name, 0, strlen( prefix ) ) == $prefix )
        {
            $serviceId = $value;
            $quantity  = $_POST[ "quantity_$serviceId" ];
        }
    }
?>

在这里你可以看到我在所有POST数据上创建了一个循环,试图找到以前缀service_开头的字段名称,一旦找到一个,我就知道它的值是服务ID。然后我可以使用服务ID来查找与所选服务ID一起发送的quantity_ [service_id]字段。

我希望这会有所帮助......

答案 1 :(得分:0)

为什么不查看jquery serialize()?

http://api.jquery.com/serialize/

然后根据ajax调用的方法迭代PHP中的$ _POST []或$ _GET []。

这也可能有用:

http://www.php.net/manual/en/reserved.variables.post.php#84813