PHP下拉编码问题
如果下拉列表不等于默认值0(在我的情况下),有人可以告诉我如何生成If语句,以便在可能的情况下自动提交表单吗PHP下拉编码问题,php,Php,如果下拉列表不等于默认值0(在我的情况下),有人可以告诉我如何生成If语句,以便在可能的情况下自动提交表单吗 session_start(); $current = isset($_SESSION['ClientNamefour']) ? $_SESSION['ClientNamefour'] : 0; while ($row = mysql_fetch_array($result)) { $id = $row["Client_Code"]; $thing = $row["C
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>
session_start();
$current=isset($\会话['ClientNamefour'])$_会话['ClientNamefour']:0;
而($row=mysql\u fetch\u数组($result)){
$id=$row[“客户机代码”];
$thing=$row[“客户全名”];
$value=“$id,$thing”;
$sel=($id==$current)?'SELECTED':'';
$options4.=“$thing”;
}
?>
这实际上是一个javascript问题。。。在表单中添加id属性,如,
,然后在
放置之后:
<?php
if(((int) $_SESSION["your_session_variable"]) != 0){
?>
<SCRIPT language="javascript">
document.getElmenetById("myfrm").submit();
</SCRIPT>
<?ph } ?>
document.getElmenetById(“myfrm”).submit();
我的理解是,不能使用服务器端语言(如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
}
<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
事件和一些JavaScript。通常,生成的HTML应如下所示:
if($option != 0){
//Function to do whatever happens after the form is sent (add to a database etc)
}
else{
//display the form
}
<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>
0
1.
2.
只有在选择未选中的选项时才会触发onchange
事件,因此不需要进行其他检查
与您的解决方案相比:
标记中缺少id
- 您需要关闭
标记
- 您可能需要更改
标记的onchange
属性中的JavaScript
没错,没有一种方法可以模拟帖子。除非你生成一个单独的cURL请求,但这样做太疯狂了。提交表单发生在浏览器中,在浏览器中完全可以提交POST请求。当查看代码时,会创建一个下拉菜单来选择web服务的一个可用用户/客户端。是的,他可以使用javascript等(但你不能让PHP提交表单?),但看起来他只希望在SQL查询等于0时显示表单?如果SQL结果大于0,那么他想用它做其他事情。如果没有必要,为什么还要显示/加载表单呢?@vegar我很清楚这一点。我是说,不可能从服务器端模拟帖子(如果没有类似cURL的东西),他使用SQL动态构建包含用户的下拉菜单。当选择一个用户时,页面可能会被更改(删除),显示该用户的详细信息(或类似信息),下拉菜单显示新选择的用户。我最初认为OP也可以使用JS,但我认为问题在于他如何处理SQL结果,而不是表单如何发送?(即,如果结果不等于0,则他希望对结果执行某些操作,或者他希望显示一个表单)。也许我读错了?@Matt,我想我的观点是,在服务器端,你最多能做的就是通过PHP生成javascript。这个问题应该更好地描述所需的事件序列。我试图解决的是,在提交上面的表单/下拉列表后,我得到了一个会话变量。我想做的是,如果会话变量不等于0,我想让表单自动提交。@Eric,现在编辑我的帖子来完成我想你要求的事情。我想你的意思是,你进入这个页面,你只想在这个会话变量不等于零的情况下用用户反馈来呈现这个表单,否则你基本上想进入下一个页面。如果不使用javascript,可能会有一种更优雅的方法来实现这一点,方法是将此页面和下一个页面合并到一个php页面中,并在服务器端打开会话变量以决定提供哪些内容。我建议做的唯一一件事是将onChange设置为调用函数,然后让函数检查选择框的值,以确保它不是0。例如,onChange=“selectionChanged();”函数selectionChanged(){if(document.getElementById('select').value!=“0”){document.getElementById('form').submit();}}也可以内联执行,但它不太漂亮:onChange=“if(this.value!=“0”){document.getElementById('form').submit();}”OP声明它不应与默认值(即所选值)匹配。onchange正是这样做的。您的表单中是否有比这一选项更多的内容?