Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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_Html - Fatal编程技术网

Php 将两个输入连接在一起(文本和隐藏)?

Php 将两个输入连接在一起(文本和隐藏)?,php,html,Php,Html,我在下面有一个循环,它显示一个数量框,并包含一个包含产品名称的隐藏字段 我想把这些联系在一起,所以如果在100个输入中,用户改变了输入90的数量,然后希望隐藏字段输入90与它联系起来 然后,这将为大于零的项目提供数量和产品名称 <?php if(get_field('sizes')) { while(the_repeater_field('sizes')) { ?> <input type="text" name="quantity[]" value="0"> &l

我在下面有一个循环,它显示一个数量框,并包含一个包含产品名称的隐藏字段

我想把这些联系在一起,所以如果在100个输入中,用户改变了输入90的数量,然后希望隐藏字段输入90与它联系起来

然后,这将为大于零的项目提供数量和产品名称

<?php if(get_field('sizes')) {
while(the_repeater_field('sizes')) { ?>
   <input type="text" name="quantity[]" value="0"> <?php the_title(); ?>
   <input type="hidden" name="product[]" value="<?php the_title(); ?>">
<?php } } ?>

这是我正在处理的页面。如果你点击“获取报价单”,第二步就是上面的代码


@Sn0opy

foreach($_POST['quantity'] as $check) {
    if($check > 0) {
        $quantityresults .= $check."\n";
    }
}

echo $quantityresults;

显然,您需要依次迭代这两个数组,以便查看产品的数量是否为非零,从而决定是否应该显示它

一般来说,
foreach
对于这项工作来说是一个笨拙的工具,方法是使用
for
循环并使用同一计数器索引到两个数组中。但是,在此特定情况下,您可以轻松地将两个数组转换为一个数组,其中键是产品名称,数量是值,使用:

然后,您可以轻松地使用
foreach
进行迭代:

foreach ($quantities as $product => $quantity) {
    if ($quantity > 0) {
        echo "$quantity x $product<br>";
    }
}
foreach($product形式的数量=>$quantity){
如果($quantity>0){
回显“$quantity x$product
”; } }
显然,您需要依次迭代两个数组,以便查看产品的数量是否为非零,从而决定是否应显示该产品

一般来说,
foreach
对于这项工作来说是一个笨拙的工具,方法是使用
for
循环并使用同一计数器索引到两个数组中。但是,在此特定情况下,您可以轻松地将两个数组转换为一个数组,其中键是产品名称,数量是值,使用:

然后,您可以轻松地使用
foreach
进行迭代:

foreach ($quantities as $product => $quantity) {
    if ($quantity > 0) {
        echo "$quantity x $product<br>";
    }
}
foreach($product形式的数量=>$quantity){
如果($quantity>0){
回显“$quantity x$product
”; } }
我建议在数量数组中使用产品ID,如下所示:

<input type="text" name="quantity[<?php the_title(); ?>][]" value="0"> 

我建议在数量数组中使用产品ID,如下所示:

<input type="text" name="quantity[<?php the_title(); ?>][]" value="0"> 

Rob,我知道你有一个很好的答案,但你可能想知道一个重要的问题

通过发布独立的
quantity[]
products[]
,那么您就依赖于这两种序列化是相互一致的,即都是按DOM顺序序列化的,因此
$\u POST['quantity']
$\u POST['product']
的索引是按元素对应的。对我来说,这不是一个完全安全的假设——请参见所选答案

如果每个产品都有一个
字段,并用产品id表示和数量表示值命名,则更安全、更传统。因此,产品ID及其值保证对应


客户端和服务器端代码需要进行相应的审查。

Rob,我知道你有一个很好的答案,但你可能想知道一个重要的问题

通过发布独立的
quantity[]
products[]
,那么您就依赖于这两种序列化是相互一致的,即都是按DOM顺序序列化的,因此
$\u POST['quantity']
$\u POST['product']
的索引是按元素对应的。对我来说,这不是一个完全安全的假设——请参见所选答案

如果每个产品都有一个
字段,并用产品id表示和数量表示值命名,则更安全、更传统。因此,产品ID及其值保证对应


客户端和服务器端代码需要进行相应的检查。

即使我为几个输入填写了“1”,但实际上它只输出我填写的最后一个产品。@Rob:这应该可以。如果没有,那就意味着
$\u POST
的内容与您发布的代码不符。多个产品是否具有相同的名称?所有名称都是唯一的。我已经用实际使用的代码更新了我的问题,以防里面有什么愚蠢的东西。@Rob:你必须对此进行一些基本的调试。阅读
array\u combine
的说明,然后阅读
print\r($\u POST)
print\r($数量)
。到那时,问题就显而易见了。@Rob:几乎任何地方都可以。您只感兴趣的是
$\u POST
,它是从开始和
$quantities
开始的。尽管我为几个输入填写了“1”,但它实际上只输出了我填写的最后一个产品。@Rob:这应该行得通。如果没有,那就意味着
$\u POST
的内容与您发布的代码不符。多个产品是否具有相同的名称?所有名称都是唯一的。我已经用实际使用的代码更新了我的问题,以防里面有什么愚蠢的东西。@Rob:你必须对此进行一些基本的调试。阅读
array\u combine
的说明,然后阅读
print\r($\u POST)
print\r($数量)
。到那时,问题就显而易见了。@Rob:几乎任何地方都可以。您只对“开始”和“数量”中的
$\u POST
感兴趣。我如何引用它来输出结果?这会使这个名字独一无二吗?我需要它是一样的。好吧,这样你引用的是确切的名称,在本例中是
标题()的输出。我建议改为使用产品ID,因为您的产品标题可能包含通过
$\u POST['quantity']['my wird@@product@@name!!']
进行引用的字符,例如,这些字符非常复杂。我无法让它使用此方法输出产品名称。我将用代码更新我的问题。肯定有办法合并两个数组并匹配行?我如何将其引用到输出t
<input type="text" name="quantity[<?php the_title(); ?>][]" value="0">