我正在执行以下场景:
当我按下一个按钮时,我会将其插入数据库,这样就可以工作了。但无论成功与否,我都不会得到反馈(警报不会弹出)。但如果我在数据库中查看,它是插入的
if(isset($_POST['action']) && $_POST['action'] > 3)
{
$message = 'success';
$message1 = 'failed';
$conn = new mysqli($servername, $username, $password, $dbname);
$values = $_POST['action'];
$status = 'pending';
$sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
if ($conn->query($sql) === TRUE) {
?>
<script type='text/javascript'>alert("<?php echo $message; ?>");</script>
<?php } else { ?>
<script type='text/javascript'>alert("<?php echo $message1; ?>");</script>
<?php }
}
}
?>
这是我用来在数据库中插入值的按钮和输入字段:
<input type="text" id="number"><br>
<button type="button" class="btn btn-success" id="test" onclick="myAjax(number.value);">test</button>
这是ajax调用:
function myAjax(value) {
$.ajax({
type: "POST",
url: 'test.php',
data:{action:value},
dataType: 'text',
success: function(data) {
}
});
}
返回AJAX调用的状态,然后在那里处理响应。
if(isset($_POST['action']) && $_POST['action'] > 3)
{
$message = 'success';
$message1 = 'failed';
$conn = new mysqli($servername, $username, $password, $dbname);
$values = $_POST['action'];
$status = 'pending';
$sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
if ($conn->query($sql) === TRUE) {
echo $message;
} else {
echo $message1;
}
}
}
?>
然后在JS中:
function myAjax(value) {
$.ajax({
type: "POST",
url: 'test.php',
data:{action:value},
dataType: 'text',
success: function(data) {
alert(data);
}
});
}
还要考虑使用准备好的语句,http://php.net/manual/en/pdo.prepared-statements.php,以避免SQL注入。
这是因为您的ajax成功没有任何作用。
在PHP中:
if ($conn->query($sql) === true) {
echo "Success";
} else {
echo "Failure";
}
在JS中:
$.ajax({
type: "POST",
url: 'test.php',
data: {action:value},
dataType: 'text',
success: function(data) {
alert(data);
}
});
last}不会关闭示例中的任何代码块。if不需要===TRUE,只要if($conn->query($sql)),如果查询反馈为TRUE,则if将为TRUE。
像这样的东西:
<?
if(isset($_POST['action']) && $_POST['action'] > 3) {
$conn = new mysqli($servername, $username, $password, $dbname);
$values = $_POST['action'];
$status = 'pending';
$sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
if ($conn->query($sql)) {
echo 'succes';
} else {
echo 'fail';
}
}
?>
你的js喜欢:
function myAjax(value) {
$.ajax({
type: "POST",
url: 'test.php',
data:{action:value},
dataType: 'text',
success: function(data) {
alert(data);
}
});
}
好的,所以我做了一个变通方法,不是我想要的,但它现在正常工作。基本上,我在Ajax成功函数中处理它,而不是在php文件中。
而不是这个
if(isset($_POST['action']) && $_POST['action'] > 3)
{
$message = 'success';
$message1 = 'failed';
$conn = new mysqli($servername, $username, $password, $dbname);
$values = $_POST['action'];
$status = 'pending';
$sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
if ($conn->query($sql) === TRUE) {
echo $message;
} else {
echo $message1;
}
}
}
?>
这个
function myAjax(value) {
$.ajax({
type: "POST",
url: 'test.php',
data:{action:value},
dataType: 'text',
success: function(data) {
}
});
}
我现在有了这个:
if(isset($_POST['action']) && $_POST['action'] > 3)
{
$message = 'success';
$message1 = 'failed';
$conn = new mysqli($servername, $username, $password, $dbname);
$values = $_POST['action'];
$status = 'pending';
$sql = "INSERT INTO queue (value, status) VALUES ('".$values."', '".$status."')";
if ($conn->query($sql) === TRUE) {}
}
?>
这个:
function myAjax(value) {
$.ajax({
type: "POST",
url: 'test.php',
data:{action:value},
dataType: 'text',
success: function(data) {
if(value > 3 && value != undefined && value != "")
{
alert("working");
}
else
{
alert("not working");
}
}
});
}