-1

我目前有一个下拉菜单框,它从我的 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>
}
4

1 回答 1

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
        }
    )
});
于 2012-12-10T20:29:39.457 回答