我有以下代码,并且它自己的工作正常,但我需要在PHP while循环中,因为可能有数百条记录。这不起作用,这意味着它不提交表单。
对此代码的任何帮助或其他有用的想法都表示赞赏。它还需要向mysql DB写入新值。请注意,我不是一个使用javascript的新手。
由于
<form action="home.php" method="post" name="status">
<input type="hidden" name="record_number" value="<? echo $r['record_number']; ?>">
<input type="hidden" name="submit" value="cstatus">
<select name="statuscode" type="dropdown" style="font-size: 8pt; width: 60px" onChange="status.submit();">
<? if($r['statuscode']) { echo "<option value='".$r['statuscode']."'>".$r['statuscode']."</option>"; } ?>
<option value='Open'>Open</option>
<option value='Closed'>Closed</option>
<option value='Pending'>Pending</option>
<option value='Cancelled'>Cancelled</option>
</select>
</form>
答案 0 :(得分:1)
onChange="status.submit();"
状态未定义。听起来你依赖于遗留的Internet Explorer怪异来为任何带名字的元素创建全局变量。
快速解决方法是:
this.form.submit();
或者,因为已经有一个名为submit的输入(避免使用与现有属性相同的名称,它会弄得一团糟)
document.createElement('form').submit.call(this.form);
也就是说,作为一个用户界面,自动提交表单的下拉菜单很糟糕,依赖于JS只是一种糟糕的方法。
每个选项都有一个提交按钮(最多只有5个)会占用更多的空间,但只需点击一下即可解决问题。
<input type="submit" name="statuscode" value="Open">
<input type="submit" name="statuscode" value="Closed">
<input type="submit" name="statuscode" value="Pending">
<input type="submit" name="statuscode" value="Cancelled">
答案 1 :(得分:1)
这在我的情况下完美无缺:
<select ... onChange="this.form.submit();">