【问题标题】:Get array key and value on other pages获取其他页面上的数组键和值
【发布时间】:2017-04-23 12:10:16
【问题描述】:

这是reservation.php文件:

这是 checkout.php 文件的代码:

我无法将选定的选项值打印到页面上。打印刚刚选择的数组键。

【问题讨论】:

  • 请分享您的代码而不是截图。
  • 这就是选择选项的工作方式。您将获得 value 中的内容,而不是向用户显示的内容。这个问题很相似:Get Text From Option Tag in PHP
  • 有没有办法在其他页面上获取这个数组的值?当我使用 $_POST['transferTypes'] 代码时,它是打印数组键刚刚选择的选项...

标签: php arrays post


【解决方案1】:

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

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

这样你可以得到传输名称而不是密钥。

【讨论】:

  • 是的,已经用过了。但是传输键和值呢?!
【解决方案2】:

有很多方法可以做到这一点。

其中一种直观的方法是将键和字符串组合成一个字符串,中间使用“特殊”字符串/标记来拆分这些值。

例如,

"aaa" => "bbb"

然后你可以将这两者结合起来,比如“aaa::bbb”,中间用“::”作为分隔符。您可以使用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.phpcheckout.php em>,然后执行array_search() 查找密钥。如果我在你身边,我会选择后一种方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多