我在jquery中有一个ajax函数调用一个php文件来对我的数据库执行某些操作,但结果可能会有所不同。我想输出一个不同的消息,无论它是否成功
我有这个:
echo '<button id="remove_dir" onclick="removed('.$dir_id.')">remove directory</button>';
<script type="text/javascript">
function removed(did){
$.ajax({
type: "POST",
url: "rmdir.php",
data: {dir_id: did},
success: function(rmd){
if(rmd==0)
alert("deleted");
else
alert("not empty");
window.location.reload(true);
}
});
}
</script>
和这个
<?php
require('bdd_connect.php');
require('functions/file_operation.php');
if(isset($_POST['dir_id'])){
$rmd=remove_dir($_POST['dir_id'],$bdd);
}
?>
我的问题是,如何在$ .ajax中返回$ rmd,我可以提醒正确的消息吗?
谢谢你的回答
答案 0 :(得分:4)
PHP
<?php
require('bdd_connect.php');
require('functions/file_operation.php');
if (isset($_POST['dir_id'])){
$rmd=remove_dir($dir_id,$bdd);
echo $rmd;
}
?>
JS
function removed(did){
$.ajax({
type: "POST",
url: "rmdir.php",
data: {dir_id: did}
}).done(function(rmd) {
if (rmd===0) {
alert("deleted");
}else{
alert("not empty");
window.location.reload(true);
}
});
}
答案 1 :(得分:3)
我建议使用json或:
if(isset($_POST['dir_id'])){
$rmd=remove_dir($dir_id,$bdd);
echo $rmd;
}
答案 2 :(得分:1)
你需要你的php文件发回一些东西,然后你需要在原始页面上调用ajax来根据响应行事。
PHP:
if(isset($_POST['dir_id'])){
$rmd=remove_dir($dir_id,$bdd);
echo "{'rmd':$rmd}";
}
将输出以下两项内容之一:{"rmd": 0}
或{"rmd": 1}
我们可以在jsBin
上模拟此回报然后使用jquery获取值并根据回调中的响应执行某些操作:
$.ajax({
type: "POST",
dataType: 'json',
url: "http://jsbin.com/iwokag/3",
success: function(data){
alert('rmd = ' + data.rmd)
}
});
View the code,然后watch it run。 只有我没有在这里发送任何数据,我的示例页面总是返回相同的响应。
答案 3 :(得分:0)
尝试在ajax文件中回显$ rmd,然后观察控制台(在ajax响应块中尝试console.log(rmd)
)
$.ajax({
type: "POST",
url: "rmdir.php",
data: {dir_id: did},
success: function(rmd){
console.log(rmd);
}
});
然后,您可以根据回复采取相应行动
答案 4 :(得分:0)
尝试在php代码中回显$ rmd,作为返回ajax。
if(isset($_POST['dir_id'])){
$rmd=remove_dir($dir_id,$bdd);
//if $rmd = 1 alert('directory not empty');
//if $rmd = 0 alert('directory deleted');
echo $rmd;
}
success: function(rmd)
中的“rmd”应该收到callabck。