我想在JQuery的帮助下调用PHP函数,我也希望Jquery代码捕获调用函数的返回类型以便进一步处理...........
我的jQuery代码是:
$(document).ready(function(){
$('#ibtn_save').click(function(){
$.post('PHP/newdep.php', { dep_id: newdep.itext_depid.value }, function(result){
if(result == 'exist'){
$('#error_div').html(result).show();
}
});
});
});
我的PHP代码是:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$deptid = mysql_real_escape_string($_POST['dep_id']);
$catcher = save_fxn($deptid);
echo $catcher;
}
function save_fxn($ltxt_deptid)
{
$query = "SELECT * FROM table_mstr_department WHERE DeptId='$ltxt_deptid'";
$query_result = mysql_query($query);
if (is_resource($query_result) && mysql_num_rows($query_result) > 0)
{
$sql_result = mysql_fetch_assoc($query_result);
return "exist";
}
else
{
$query = "INSERT INTO table_mstr_department (DeptId, DeptName) VALUES ('$ltxt_deptid','$ltxt_deptname')";
$output = mysql_query($query);
if (!$output)
{
echo "Data not inserted successfully!";
}
return "success";
}
}
?>
和HTML代码为
请修正以下错误!
<p> <label for="dep_id">Department Id :</label> <input id="itext_depid" name="text_depid" type="text" /> <span class="sdepid"></span> </p>
<p> <label for="dep_name">Deparment Name :</label> <input id="text_depname" name="text_depname" type="text" /> <span class="sdepname"></span> </p>
<input type="submit" id="ibtn_save" name="btn_save" value="Save">
答案 0 :(得分:0)
好吧,你的代码似乎没问题。由于您没有指定哪些不适合您,我会猜测,只要您按下“保存”按钮,页面就会重新加载,而不是给ajax调用完成时间并显示结果。
这种情况正在发生,因为您使用type=submit
按钮,该按钮将在完成onclick
处理程序后提交您的表单。执行ajax调用,但是当它返回时,调用页面已经消失。
有两种解决方法。您可以将输入更改为type=submit
或type=image
旁边的任何内容,例如,您可以使用:
<input type="button" id="ibtn_save" name="btn_save" value="Save">`
或者,您可以让onclick处理程序通过返回false来禁止提交按钮的默认操作:
$(document).ready(function(){
$('#ibtn_save').click(function(){
$.post('PHP/newdep.php', { dep_id: newdep.itext_depid.value }, function(result){
if(result == 'exist'){
$('#error_div').html(result).show();
}
});
return false;
});
});
这可以解决您的问题吗?如果没有,请指明您遇到的行为,以及您希望它采取不同行为的原因。