我使用下面的选择列表函数来创建一个包含 5 个值的选择列表。当我选择值 2-5 时,它们工作正常,当我选择它们时,它们会在页面上打印出它们的值,但无论如何,值 1 都不会打印出来。我不知道我做错了什么或如何解决它。请看一下我的代码:
index.php
function limit($count,$location) {
echo "<form method = 'POST' action = '$location'>";
echo "<select name = 'value' onchange='this.form.submit()'>";
while ($tempCount < $count) {
$tempCount++;
echo "<option value='$tempCount'>$tempCount</option>";
}
echo "</select>";
echo "</form>";
}
limit(5,"index.php")
$value = $_POST['value'];
echo $value;
最佳答案
将第一个选项添加到 < select >
,并且,检查是否 $_POST['value']
存在。接下来是您的代码,其中两个更改均由注释箭头指向 (//<======) :
<?php
function limit($count,$location) {
echo "<form method = 'POST' action = '$location'>";
echo "<select name = 'value' onchange='this.form.submit()'>" .
"<option>Select an option</option>"; // <===========================
while ($tempCount < $count) {
$tempCount++;
echo "<option value='$tempCount'>$tempCount</option>";
}
echo "</select>";
echo "</form>";
}
limit(5,"xyz.php");
if ( isSet( $_POST['value'] ) ) // <===========================
{ $value = $_POST['value'];
echo $value;
}
?>
“选择一个选项”选项将允许用户选择选项 1。
如果您不想看到“选择一个选项”,另一种解决方案是使所选选项处于选中状态,例如,如果用户选择“3”,则当页面重新加载时,选项“3”将被选中选中,用户将能够选择选项“1”:
<?php
function limit($count,$location) {
echo "<form method = 'POST' action = '$location'>";
echo "<select name = 'value' onchange='this.form.submit()'>";
while ($tempCount < $count) {
$tempCount++;
// MAKE THE CURRENT OPTION SELECTED IF IT WAS CHOSEN BEFORE. <==========
if ( isSet( $_POST['value'] ) && // IF 'value' EXISTS, AND
( $_POST['value'] == $tempCount ) ) // IF 'value' == CURRENT NUMBER
$selected = "selected";
else $selected = "";
echo "<option $selected value='$tempCount'>$tempCount</option>";
}
echo "</select>";
echo "</form>";
}
limit(5,"xyz.php");
if ( isSet( $_POST['value'] ) ) // <===========================
{ $value = $_POST['value'];
echo $value;
}
?>
关于javascript - 使用 onchange 函数、PHP、JAVASCRIPT 时选择列表忽略第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304529/