【发布时间】:2018-07-27 13:02:41
【问题描述】:
我正在尝试使用下拉列表而不使用提交按钮来更新数据库。
这是我的下拉菜单:
<td>
<label for=""></label>
<select style="font-family: Questrial;" name="status" required>
<option disabled selected hidden>Select Status</option>
<option value="In Progress">In Progress</option>
<option value="Closed: Cancelled">Closed: Cancelled</option>
<option value="Closed: Solved">Closed: Solved</option>
</select>
</td>
这是脚本:
<script>
$(document).ready(function() {
$('option[name="status"]').click(function() {
var status = $(this).val();
$.ajax({
url: "update2.php",
method: "POST",
data: {
status: status
},
success: function(data) {
$('#result').html(data);
}
});
});
});
</script>
这里是 update2.php:
<?php
//Insert Data
$hostname = "localhost";
$username = "root";
$password = "";
$databasename = "companydb";
try
{
$conn = new PDO("mysql:host=$hostname;dbname=$databasename",$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST["status"]))
{
$query = "INSERT INTO tickets(status) VALUES (:status)";
$statement = $conn->prepare($query);
$statement->execute(
array('status' => $_POST["status"])
);
$count = $statement->rowCount();
if($count > 0)
{
echo "Data Inserted Successfully..!";
}
else
{
echo "Data Insertion Failed";
}
}
}
catch(PDOException $error)
{
echo $error->getMessage();
}
?>
基本上,我希望在从下拉列表中进行选择时更新表值。
目前,当我进行选择时,没有任何反应。 (没有页面重新加载,没有错误信息,什么都没有)
我在这里做错了吗?
这也是我的表架构:
【问题讨论】:
-
用
select[name="status"] option替换option[name="status"] -
您可能还应该听
change事件而不是点击事件,以避免运行不必要的代码和发出不必要的请求。 -
@jeroen 您没有不必要的请求,请收听选项的点击。但无论如何最好(通常完成)选择更改事件。
-
您能否在您的点击监听函数的最开始时发出警报
alert("clickListener works!");并查看警报是否显示? -
@Cashbee 是的,我收到了警报。
标签: php html mysql database phpmyadmin