-1

現在、mySQLデータベースの列から要素を取得してドロップダウンボックスに表示するドロップダウンメニューボックスがあります。ユーザーは、事前に決定された5つのオプションから選択することもできます。[送信]をクリックすると、変更がデータベースに反映されます。

私のコードには問題はありませんが、ユーザーにとってより直感的にしたいと思います。現時点では、[送信]をクリックするとページが更新され、ページはスクロール位置を失います(更新されると、ページは一番上に移動します)。

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 に答える