下拉菜单框的while循环,并且提交按钮位于此while循环之外

时间:2012-12-10 20:05:44

标签: php html mysql post submit

我目前有一个下拉菜单框,它从mySQL数据库的列中获取一个元素,并在下拉框中显示它。用户还可以从五个预定选项中进行选择。单击提交时,更改将反映在数据库中。

我的代码没有问题,但我想让用户更直观。此时,单击“提交”后,页面将刷新,页面将丢失其滚动位置(刷新后,页面将显示在顶部)。

如何在while循环之外创建提交按钮?我想在页面底部有提交按钮,这意味着它将在迭代while循环之外,对吧?我怎么能这样做?

附上我的代码:

<?
if (isset($_POST['formSubmit'])){
    $rating = $_POST['rating'];
    $accountID = $_POST['accountID']; 

mysql_query("UPDATE Spreadsheet SET rating='$rating' WHERE accountID='$accountID'");
}

while ($row = mysql_fetch_array($query)){ ?>

<form name ="rating" method ="POST" action ="" > <?

echo "<input type = 'hidden' name = 'accountID' value = '" . $row['accountID'] . "' >";

?>
    <select name="rating">

        <? $values = array('0 - No rating','1 - Very Bad','2 - Bad','3 - Average','4 - Above Average');

        for ($i =0; $i < count($values); $i = $i + 1){
            echo "<option value = \"$i\""; 

            if ($row['rating'] == $i) {
                echo "selected=\"selected\"";
            }

            echo ">" . $values[$i] . "</option>";

        }

        ?>

        </select>
        <input type ="Submit" name ="formSubmit" value ="Submit" />
        </form>
}

1 个答案:

答案 0 :(得分:0)

我建议你用AJAX解决这个问题。不要将其作为表单提交,而是将其作为AJAX请求发送。类似的东西:

$('select[name="rating"]').change(function () {
    var rating = $("select[name="rating"] option:selected").val();
    $.post(
        'YOUR-URL.php',
        {'rating' : rating},
        function(response) {
            //do what you got to do
        }
    )
});