我正在执行以下方案:
当我按下一个按钮时,我将其插入数据库,这是有效的。但如果成功与否,我不会得到反馈(警报不会弹出)。但如果我查看我的数据库就会插入
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) {
}
});
}
答案 0 :(得分:1)
这是因为你的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);
}
});
答案 1 :(得分:1)
最后一个}不会关闭示例中的任何代码块。如果不需要=== TRUE,只要($ conn-&gt; query($ sql)),如果查询反馈为真,则if为真。
类似的东西:
<?
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);
}
});
}
答案 2 :(得分:0)
好的,所以我做了一个解决方法,不是我真正想要它,但它现在正在工作。基本上我在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");
}
}
});
}