Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php试图接收未知数量的输入_Php_Jquery_Html_Select_Input - Fatal编程技术网

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

php试图接收未知数量的输入,php,jquery,html,select,input,Php,Jquery,Html,Select,Input,应用程序类似于购物车。 我从一个ajax源(任何源都是相同的xD)和未知数量的服务(未知,因为它们在数据库中的数量在增长)。 它们由一个复选框表示,该复选框指示您是否需要该服务,然后它显示两个输入,一个禁用价格,另一个设置数量 问题是如何将它们全部发送到php进行处理(总价计算和数据库插入)。我使用了带括号的输入属性名称进行多次选择 <select name="something[]">... ...</select> 。。。 我想知道是否有一种方法可以实现这样的目

应用程序类似于购物车。 我从一个ajax源(任何源都是相同的xD)和未知数量的服务(未知,因为它们在数据库中的数量在增长)。 它们由一个复选框表示,该复选框指示您是否需要该服务,然后它显示两个输入,一个禁用价格,另一个设置数量

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

<select name="something[]">...  ...</select>
。。。
我想知道是否有一种方法可以实现这样的目标,但需要投入。 或者在mooitems中使用一些奇特的jquery插件- 以下是查看我的总失败尝试的页面:(

(您首先必须选择viaje,然后选择categoria,关联的服务将立即显示,最后调整adultos的数量,以便能够提交表单……很抱歉,流量是必需的:/)

请给我一些指导,一些可以阅读的东西,任何东西
thx。为什么不看看jquery serialize()

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

这也可能有用:


好的,因此如果您有多个要发送到服务器的项目,您必须构建HTML,使其看起来像以下内容(动态内容显示在方括号[]):

[服务名称]
您必须为由前缀(如服务或数量)和后缀(即该服务的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_u开头的字段名,一旦找到一个,我就知道它的值是服务ID。然后我可以使用服务ID来查找与所选服务ID一起发送的quantity_u[service_ID]字段


我希望这有帮助……

是的,它也适用于输入元素。不需要更改。让我检查一下,也许会有帮助。-我想我在寻找一个没有JS的答案,这似乎是不可能的:/你可以随意发送它们……如果你真的提交表单而不是使用ajax,你不必使用JS。$\u POST或$\u GET将继续n提交表单时表单上所有具有名称属性的成功控件。第二个链接显示了如何使用php中数组中的键和值创建变量。问题是服务的名称确实相同:/。我是从php动态创建它们的,因此我的选项是给它们一个名称(所有选项都相同),而不是命名它们或动态创建一个没有任何意义的编号名称:/。这就是为什么我问有一种方法可以在select MULTIPLE中执行类似[]的操作我认为这是一种方法,但有点混乱
<?
    $prefix = "service_";
    foreach ( $_POST as $name => $value )
    {
        if ( substr( $name, 0, strlen( prefix ) ) == $prefix )
        {
            $serviceId = $value;
            $quantity  = $_POST[ "quantity_$serviceId" ];
        }
    }
?>