2

我会尽量简明扼要。

我有一个 PHP 表单页面,它使用数组中的数据(杂志名称)填充一个下拉框,然后,如果发布,将其输出到另一个页面。

但是,我在表单中有第二个数组(包含订阅链接),我还需要将其发送到输出页面,具体取决于从下拉框中选择的内容。如果这是有道理的。

例如,如果$arrayOne[7]从下拉框中选择了 for 的值,我还需要自动将 over 的值 post_GET$arrayTwo[7]到输出页面。

任何人都可以帮忙吗?

默认.php

$arrayOne[0] = "magazineA";
$arrayOne[1] = "magazineB";
etc...

$arrayTwo[0] = "subscriptionLinkA";
$arrayTwo[1] = "subscriptionLinkB";
etc...

<form action="index2.php" method="get">
<?php

echo '<select name="publication">';
foreach ($magazine as $publication)
{
    echo '<option name="publication" value="' . $publication . '">' . $publication . '</option>';
}
echo '</select>';

?>
<input type="submit">
</form>

index2.php

<p>
If you have subscribed to <?php echo $_GET["publication"]; ?>,
you will receive your hard-copy in due course. If you are not a current subscriber,
<a href="#">click here</a> to subscribe.
</p>
4

2 回答 2

1

由于 from 的值$array2完全取决于 的值$array1$_GET['a1']因此可以作为对其他值的查找。即你根本不必通过$a2

在 index2.php 上,你会有这样的东西:

$arr2= array( 'magazineA' => 'subscriptionLinkA',
              'magazineB' => 'subscriptionLinkB');

$pub= $_GET['a1']; //you'd want to sanitize this value of course
$link= $arr2[$pub];

echo  <<< EOT
<p>
If you have subscribed to $pub
you will receive your hard-copy in due course. If you are not a current subscriber,
<a href="$link">click here</a> to subscribe.
</p>
EOT;
于 2012-12-11T12:06:04.937 回答
0

方法一

<input type="hidden"...您可以使用 Javascript 使用字段的选定选项填充隐藏的输入字段 ( ),此时<select>字段中的下拉选择<select>已更改。

default.php的一些代码:

<form action="index2.php" method="get">
<?php

echo '<select id="pubfield" name="publication">';
foreach ($magazine as $publication) {
    echo '<option name="publication" value="'.$publication.'">'.$publication.'</option>';
}
echo '</select>';

?>
    <input type="submit" value="SEND!">
    <input type="hidden" id="hid" name="arr2" value="" />

    <script type="text/javascript">

        // Using jQuery, include the js file with jQuery.
        $('select#pubfield').change(function() {
            var value = $("select#pubfield option:selected").text(); // Get the selected option from the select field.
            $('input#hid').value(value);
        });
        $('select#pubfield').change();

    </script>
</form>

JSFiddle。_

注意:由于 Javascript 是客户端,我建议你不要相信 HTML 表单发送的值。始终对其执行服务器端检查。

更新:

方法二

您还可以将索引值设置为<option value="">并将它们与表单一起发送。

$magazines = array(
    "magazineA", // will be index 0
    "magazineB", // will be index 1
    ...
);
...
foreach ($i = 0; $i < count($magazines); $i++) {
    echo '<option value="'.$i. '">'.$magazines[$i].'</option>';
    // The 'value' attribute of the selected option will be posted.
}
...

然后你甚至不需要隐藏的输入字段,而是将索引传递给$_POST变量。
例如,如果选择了“magazineB”,则值1将传递给$_POST['publication']

于 2012-12-11T11:40:36.690 回答