我目前有一个下拉菜单框,它从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>
}
答案 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
}
)
});