我是AJAX的初学者。
这是我表单的post-action的PHP,但不知怎么的,它总是返回false。
<?php
session_start();
include"../connection/sambung.php";
$us=$_SESSION['username'];
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //halaman ini harus dipanggil melalui post
$id = $_POST["id"];
$code = $_POST["code"];
$act = $_POST["act"];
switch($act){
//tambah data
case "insert":$sql="INSERT INTO karyawan(nip,nama)VALUES('".$nip."','".$nama."')";$i='1';break;
//edit data
case "validate":$sql="UPDATE member SET validasi=1 WHERE id_member ='".$id."' and kode_member='".$code."'";$i='2';break;
//hapus data
case "delete":$sql="DELETE FROM karyawan WHERE nip = '".$nip."'";$i='2';break;
}
//eksekusi sql
$kueri = mysql_query($sql);
//tampilkan hasil
if($i=='1'){
if(mysql_num_rows($kueri)){echo "success";}
}
else if($i=='2'){
if (mysql_affected_rows($kueri)){echo "success";}
}
else{
echo "failed";
}
}else{
echo "This link can't run directly.";
}
?>
AJAX配置如下:
$( "#dialog-validate" ).dialog({
autoOpen: false,
height: 200,
width: 350,
modal: true,
buttons: {
"Validate": function() {
var
aid = $("#idedit").html();
acode = $("input#codeedit").val();
aact= 'validate';
$("#waiting").show();
$.ajax({
type: "POST",
url: "applicant/check.php",
data: {"id":aid,"code":acode,"act":aact},
timeout: 3000,
beforeSend: function(){},
complete: function(){},
cache: false,
success: function(result){
if (result=='success'){
//ubah isi data table sesuai dengan perubahan yang terjadi
objRow.find(".valcell").html("Yes");
$("#waiting").hide();
}else{alert('gagal simpan data');$("#waiting").hide();}
},
error: function(error){$("#waiting").hide();alert(error);}
}
);
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
我需要的是如何制作
success: function(result){
if (result=='success'){
结果为false,我已经更改了很多次,PHP还是AJAX错误?请帮助
看起来您正在检查成功函数中的错误代码。如果您的脚本返回一个HTTP200OK标头,则会调用success。请尝试设置一个错误标头,以便调用您的错误函数。
恐怕这并不能完全回答你的问题,但它会让你的代码更容易阅读,并很好地解决你的问题。