有人可以告诉我如何制作一个If语句,如果下拉列表不等于默认值0(在我的情况下),如果可能的话自动提交表单吗?
session_start();
$current = isset($_SESSION['ClientNamefour']) ? $_SESSION['ClientNamefour'] : 0;
while ($row = mysql_fetch_array($result)) {
$id = $row["Client_Code"];
$thing = $row["Client_Full_Name"];
$value = "$id, $thing";
$sel=($id==$current)?'SELECTED':'';
$options4.="<OPTION $sel VALUE=\"$value\">$thing</option>";
}
?>
<FORM name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<SELECT NAME="ClientNamefour" OnChange="this.form.submit()"
)">
<OPTION VALUE=0>Client
<?php echo $options4?>
</SELECT>
</FORM>
答案 0 :(得分:2)
使用onchange
事件和一些JavaScript。通常,生成的HTML应如下所示:
<form id="form" name="form" method="POST" action="http://example/script.php">
<select id="select" name="select" onChange="document.getElementById('form').submit();">
<option value="0" selected="selected">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
onchange
事件仅在您选择未选择的选项时触发,因此不需要进行其他检查。
与您的解决方案相比:
id
标记<form>
</option>
代码onchange
代码的<select>
属性中的JavaScript 答案 1 :(得分:1)
我的理解是你无法复制使用服务器端语言(如PHP)推送“提交”按钮的人。如果用户将其更改为(除0以外的其他内容),您可以使用javascript提交表单
但是,如果SQL查询返回的结果不是0,您似乎只想显示表单?
在那种情况下,我会做这样的事情......
运行SQL查询
代码如下:
if($option != 0){
//Function to do whatever happens after the form is sent (add to a database etc)
}
else{
//display the form
}
答案 2 :(得分:0)
这实际上是一个javascript问题...在<form id="myfrm"...>,
之后添加了</form>
表单的id属性:
<?php
if(((int) $_SESSION["your_session_variable"]) != 0){
?>
<SCRIPT language="javascript">
document.getElmenetById("myfrm").submit();
</SCRIPT>
<?ph } ?>