我基本上是在尝试编写一个PHP脚本,当下拉列表中选择了某个选项/值时,该脚本将显示一条消息。
这是用于澄清的html
<select name="month">
<option value="0">0</option>
<option value="1">January</option>
<option value="2">Febuary</option>
<option value="3">March</option>
<option value="4">April</option>
</select>
基本上,我希望PHP脚本在选择一个选项(例如第一个选项(January))时打印一个语句。
答案 0 :(得分:2)
如果您希望在更改选择时执行操作,则需要一个客户端解决方案,如javascript,最好是jQuery。
PHP无法满足您的要求,它可以在提交表单时执行某些操作,但在更改选择时则不会。
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
$(document).ready(function(){
$("select").on("change", function(){
alert("The value is " + $(this).val());
});
});
当您的选择发生变化时,这将产生警报。
答案 1 :(得分:1)
它可能在客户端做得更好但是因为你想用PHP做,这是一个使用关联数组的简单解决方案:
<强> somefile.php 强>:
<?php
$months = array(1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May',
6 => 'June', 7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November',
12 => 'December');
if(isset($_POST['sb'])){
$input = $_POST['month'];
echo "You selected ".$months[$input];
}
?>
<form action="" method="post">
<select name="month">
<option value="1">January</option>
<option value="2">Febuary</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="submit" name="sb"/>
</form>
如果您想动态生成菜单,可以执行以下操作:
<?php
$curr_month = date("m");
$month = array (1=>"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$select = "<select name=\"month\">\n";
foreach ($month as $key => $val) {
$select .= "\t<option val=\"".$key."\"";
if ($key == $curr_month) {
$select .= " selected=\"selected\">".$val."</option>\n";
} else {
$select .= ">".$val."</option>\n";
}
}
$select .= "</select>";
echo $select;
?>
希望这有帮助!
答案 2 :(得分:0)
这不是可以用PHP完成的事情。 PHP在服务器端执行,这意味着一旦完成所有服务器端处理,它就会提供静态页面。要更改某些内容,必须将其提交回服务器并重新传送。
Javascript是你想要在这里使用的。查看Codecademy jQuery轨道,它对于确定如何以您想要的方式进行客户端工作非常有帮助。 http://www.codecademy.com/tracks/jquery
基本上你想要一个onchange="function()"
属性用于select,它会调用一个javascript函数来在一个单独的区域中显示一条消息。
例如(不完全是你想要的,但说明了原则:
<script type="text/javascript">
var changed = function() {
alert("Value of select is now: " + event.target.value);
};
</script>
<form action="index.php" method="POST">
<select name="month" onchange="changed()">
<option value="0">0</option>
<option value="1">January</option>
<option value="2">Febuary</option>
<option value="3">March</option>
<option value="4">April</option>
</select>
</form>
答案 3 :(得分:-1)
如果你的html看起来像这样:
<form action="index.php" method="POST">
<select name="month">
<option value="0">0</option>
<option value="1">January</option>
<option value="2">Febuary</option>
<option value="3">March</option>
<option value="4">April</option>
</select>
<input type="submit" value="Select">
</form>
然后在你的index.php中:
echo "You selected " . $_POST['month'];