【问题标题】:Matching up form post array values after form submission in PHP在 PHP 中提交表单后匹​​配表单发布数组值
【发布时间】:2018-08-16 23:15:31
【问题描述】:

我有一个表格:

<form action="index.php" method="post">

具有多个选择输入

<select class="form-control" id="location" name="location[]" >
<option selected disabled value="">Choose Location</option>
<option value="closing">Closing Station</option>
<option value="device">Device/ROF</option>
<option value="merch1">General Merch 1</option>
<option value="merch2">General Merch 2</option>
</select>
<input type="hidden" name="image_name[]" value="<?php echo $file; ?>" />

我在提交表单时有这个数组:

Array (
    [location] => Array (
    [0] => closing 
    [1] => merch1 
    [2] => merch2 ) 

    [image] => Array ( 
    [0] => AL-AL.jpg 
    [1] => AL-AN.jpg 
    [2] => AL-AV.jpg 
    [3] => AL-CA.jpg 
    [4] => AL-CL.jpg 
    [5] => AL-CM.jpg ) 

    [submit] => Submit 
)

我希望 PHP 中的输出是这样的:location[0] 和 image[0] 等: 这是我的代码:

<?php
            if (isset($_POST['submit'])){
                 foreach ($_POST['location'] as $location) {
                foreach ($_POST['image_name'] as $image) {
    echo "you have selected $image to go to this location: $location <br/>";
                            }
                        }
                    }
            }
?>  

这是当前输出:

you have selected AL-AL.jpg to go to this location: closing 
you have selected AL-AN.jpg to go to this location: closing 
you have selected AL-AV.jpg to go to this location: closing 
you have selected AL-CA.jpg to go to this location: closing 
you have selected AL-CL.jpg to go to this location: closing 
you have selected AL-CM.jpg to go to this location: closing 
you have selected AL-AL.jpg to go to this location: merch2 
you have selected AL-AN.jpg to go to this location: merch2 
you have selected AL-AV.jpg to go to this location: merch2 
you have selected AL-CA.jpg to go to this location: merch2 
you have selected AL-CL.jpg to go to this location: merch2 
you have selected AL-CM.jpg to go to this location: merch2 

它现在似乎是一个永恒的循环。我知道有一种方法可以匹配 [] 值上的每个数组,然后只在匹配的地方输出,但我想不通。

【问题讨论】:

    标签: php arrays forms


    【解决方案1】:

    不需要2个循环,使用来自位置的键来查找图像

    <?php
    $p['location'][0]='closing'; 
    $p['location'][1]='merch1';
    $p['location'][2]='merch2'; 
    
    $p['image'][0]='AL-AL.jpg'; 
    $p['image'][1]='AL-AN.jpg'; 
    $p['image'][2]= 'AL-AV.jpg'; 
    
    foreach($p['location'] as $k=>$v ){
    echo "you have selected ".$p['image'][$k]." to go to this location: $v <br/>";
    }
    
    ?>
    

    输出:

    您已选择 AL-AL.jpg 前往此位置:关闭
    您 已选择 AL-AN.jpg 前往此位置:merch1
    你有 选择 AL-AV.jpg 去这个位置:merch2

    【讨论】:

    • 此解决方案无法正常工作,它始终将第一个图像与任何下拉选项匹配。有没有办法匹配选择[location][0] - [image][0]等如数组所示?
    • @user1559189 我已经用包含的值重写了答案,希望对您有所帮助。问题中有一些反复无常,但我认为以上内容应该可以解决。
    猜你喜欢
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2015-11-16
    • 2011-07-27
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多