Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从数据库填充下拉列表,然后单击按钮更新_Php_Sql - Fatal编程技术网

PHP从数据库填充下拉列表,然后单击按钮更新

PHP从数据库填充下拉列表,然后单击按钮更新,php,sql,Php,Sql,我无法从数据库填充下拉列表,然后单击按钮更新所选项目。我想要的是,当你在下拉列表中选择选项B时,它会在点击提交按钮时更新该选项 我可以让下拉框很好地填充,但当单击按钮时,它不会正确更新。我一边学习,任何指点都将不胜感激 <form id='filter' name='filter' method='post' action=''> <?php $getIssuedVouchers2 = "SELECT * FR

我无法从数据库填充下拉列表,然后单击按钮更新所选项目。我想要的是,当你在下拉列表中选择选项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>


PHP是一种服务器端语言。当您请求页面时,它会运行一次,完成后,它会将页面提供给您。它在您执行另一个页面请求之前不会运行,而PHP不能这样做,因为这是客户端操作

您需要的是Javascript和Ajax。它们是客户端语言。我建议你使用它,一旦你掌握了窍门,它就很容易使用了。与标准javascript相比,它的糟糕程度要小得多

如果您不想避免页面重新加载(提交->处理程序->页面重新加载),我可以为您准备一个答案。也许吧


根据您的评论更新: 您想设置“selected”属性,使该选项在页面加载时处于选中状态,对吗?e、 g.选择下拉列表中的第二项,而不是第一项

您需要在选项标签上使用
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>
突击队员
在本例中,$FOUNY是我的项目,它使我打印出所选内容,从而使该选项被选中


在你的情况下,就是这样。有点难看。我想我修复了你的一些代码,但是没有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>";
}
while($ivSelectRow=mysql\u fetch\u数组($issuedVouchersResult2)){
$selected=false;
如果(isset($_POST['Submit'])){
$selected=($_POST['vouchId']=$ivSelectRow['vouchId']);
}
回显“$ivSelectRow['vouchId']”;
}

请注意,我可能会更改选项名称或发送一篇帖子,这将导致您的值过期,或者由于您的数据未经过消毒而删除整个表。

(1)在您的
选择
查询之前,将
if(isset($\u POST['Submit'])
/
更新
查询放在
选择之前,以便在选择之前进行更新,(2)您希望使用
$\u POST['SelectName']
,以及(3)在查询中使用时清理
$\u POST['SelectName']
以防止sql注入您应该真正使用PDO,而不是将字符串连接到sql。我可以发送一个定制的POST请求,数据vouchId设置为105';下表voucherscodes;(或类似)并且您的整个表将立即被删除。请注意-它应该是
..
而不是
。因此,如果我将更新查询中的“$ivSelectRow['vouchId']”部分更改为数据库中的一个值并单击按钮,它将很好地更新该值。我想让它做的是在下拉菜单中选择vouchId并更新该id。用我如何选择选择的示例更新了我的答案。您的选择标准与我的不同。请再更新一次。希望能有帮助。我觉得我不知道自己在做什么。此外,对你认为有助于你前进的评论/问题进行投票,因为如果你不这样做,人们就不太可能提供帮助。