如何使用Jquery调用PHP函数并捕获返回类型

时间:2013-11-19 08:20:58

标签: php jquery sql

我想在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">

1 个答案:

答案 0 :(得分:0)

好吧,你的代码似乎没问题。由于您没有指定哪些不适合您,我会猜测,只要您按下“保存”按钮,页面就会重新加载,而不是给ajax调用完成时间并显示结果。

这种情况正在发生,因为您使用type=submit按钮,该按钮将在完成onclick处理程序后提交您的表单。执行ajax调用,但是当它返回时,调用页面已经消失。

有两种解决方法。您可以将输入更改为type=submittype=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;
    }); 
}); 

这可以解决您的问题吗?如果没有,请指明您遇到的行为,以及您希望它采取不同行为的原因。