我无法从数据库填充下拉列表,然后在按钮点击时更新所选项目。我想要的是,当您在下拉列表中选择选项B时,它会在点击提交按钮时更新该选项。
我可以让下拉框填充正常,但点击按钮时,它无法正确更新。我正在学习,任何指针都会受到赞赏。
<form id='filter' name='filter' method='post' action=''>
<?php
$getIssuedVouchers2 = "SELECT * FROM vouchercodes WHERE status = 'Active'";
$issuedVouchersResult2 = mysql_query($getIssuedVouchers);
?>
<select>
<?php
while ($ivSelectRow = mysql_fetch_array($issuedVouchersResult2)) {
echo "<option name='updatestatus'>" . $ivSelectRow['vouchId'] . "</option>";
}
?>
</select>
<INPUT TYPE="Submit" VALUE="Update the Record" NAME="Submit" />
<?php
if(isset($_POST['Submit'])) { //if the submit button is clicked
$updatingQuery = "UPDATE vouchercodes SET status='Expired' WHERE vouchId = '".$ivSelectRow['vouchId']."' ";
mysql_query($updatingQuery) or die("Cannot update");//update or error
}
?>
</form>
答案 0 :(得分:0)
PHP是一种服务器端语言。它在您请求页面时运行一次,在完成后它会为您提供页面。它不会运行,直到您执行另一个页面请求,而PHP无法执行此操作,因为这是客户端操作。
您正在寻找的是Javascript和Ajax。它们是客户端语言。我建议您使用Jquery,一旦掌握了它,它就非常容易使用。它使它比标准的javascript更糟糕。
如果您不想避免重新加载页面(提交 - >处理程序 - &gt;页面重新加载),我可以为您做出答案。也许
从评论中更新: 你想设置&#34;选择&#34;在页面加载时选择该选项的属性是否正确?例如选择下拉列表中的第二项而不是第一项。
您需要在选项标记上使用selected
属性。这使它被选中。
以下是我在其中一个网站上使用的示例。
<select data-wavenum='<?=$i;?>' id="enemy<?=$i;?>" name="enemy<?=$i;?>" class="enemylist">
<option value="assaulttrooper" <?=($enemy == 'assaulttrooper') ? "selected" : ""?>>Assault Trooper</option>
这打印出如下内容:
<option value="assaulttrooper" selected>Assault Trooper</option>
在这种情况下,$ enemy是我的项目,它让我选择了打印,这使得该选项被选中。
在你的情况下,这就是它的本质。这有点难看。我想我修改了你的一些代码,但没有DB后端,我无法测试。
while ($ivSelectRow = mysql_fetch_array($issuedVouchersResult2)) {
$selected = false;
if (isset($_POST['Submit'])) {
$selected = ($_POST['vouchId'] == $ivSelectRow['vouchId']);
}
echo "<option name=".$ivSelectRow['vouchId']." ".($selected) ? "selected" : "".">" . $ivSelectRow['vouchId'] . "</option>";
}
请注意,我可以更改选项名称或发送导致您过期的POST,或删除整个表格,因为您的数据未经过清理。