获取其他页面上的数组键和值

时间:2017-04-23 12:10:16

标签: php arrays post

这是reservation.php文件:

enter image description here

这是checkout.php文件代码:

enter image description here

我无法将所选选项值打印到页面。刚刚选择的数组键被打印出来。

2 个答案:

答案 0 :(得分:0)

选择选项只会返回"值"。 由于没有使用数组键(基于您的代码),只需这样做:

echo "<option value='$transferName'>$transferName</option>";

这样您就可以获得转移名称而不是密钥。

答案 1 :(得分:0)

有很多方法可以实现这一目标。

其中一种 直观 方法是将键和字符串组合成一个字符串,使用&#34; special&#34;中间的字符串/标记来拆分这些值。

例如,

"aaa" => "bbb"

然后你可以将这两者结合起来,例如&#34; aaa :: bbb &#34;,用&#34; :: &#34 ;作为中间的分裂者。您可以使用explode()分隔密钥和密钥。 checkout.php 文件中的值。

<强> reservation.php

<form action="checkout.php" method="post">
    <select name="transferTypes" id="transferTypes" required>
    <?php
        $transferTypes = array(
            "aaa" => "bbb",
            "ccc" => "ddd"
        );
        echo "<option value='' selected disable>yadayadayada .. </option>";
        foreach($transferTypes as $transferKey => $transferName) {

            $combine = $transferKey . "::" . $transferName; // combine key::value here

            echo "<option value='$combine'>$transferName</option>";
        }
    ?>
    </select>
    <input type="submit" value="submit">
</form>

<强> checkout.php

<?php
    list($key, $value) = explode("::" , $_POST['transferTypes']);
    echo "Key : " . $key . "<br>";
    echo "Value : " . $value . "<br>";
?>

请注意,这种方法不是在任何地方清理,但它可以完成工作吗?

另一种方法是将$transferTypes分隔为新文件,将其包含在 reservation.php checkout.php中 ,然后执行array_search()查找密钥。如果我在你这边,我会采取后一种方式。