PHP下拉编码问题

时间:2010-01-22 16:06:01

标签: php

有人可以告诉我如何制作一个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>

3 个答案:

答案 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,您似乎只想显示表单?

在那种情况下,我会做这样的事情......

  1. 运行SQL查询

  2. 代码如下:

    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 } ?>