Php Ajax调用的响应

Php Ajax调用的响应,php,codeigniter,jquery,Php,Codeigniter,Jquery,我正在使用ajax进行一个小表单验证。用户提供一个键,当表单提交时,我调用ajax方法validate\u key 我的职能是 function validate_key(){ $key = $_POST['key']; $id = $this->uri->segment(3); $query = $this->db->get_where('mc_boxes', array('idmc_boxes' => $id)); $row =

我正在使用ajax进行一个小表单验证。用户提供一个键,当表单提交时,我调用ajax方法validate\u key

我的职能是

function validate_key(){
    $key = $_POST['key'];
    $id = $this->uri->segment(3);
    $query = $this->db->get_where('mc_boxes', array('idmc_boxes' => $id));
    $row = $query->row();
    $download_key = strtolower($row->downloadkey);
    if($download_key == $key){
        return true;
    }
    else{
        return false;
    }
}
JQuery是

$(document).ready(function() {
    $('#submit').click(function() {
        var key = $('#downloadkey').val();
        var dataString = {KEY:key};
        $.ajax({
            url: "/index.php/home/validate_key",
            type: 'POST',
            data: dataString,
            success: function(msg) {
            }
        });
        return false;
    });
});
表格如下:

<form name="form" method="post"> 
   <input id="downloadkey" name="downloadkey" type="text" />
   <input type="submit" id="submit" name="submit" value="submit"/>
</form>

我检查用户提供的数据库密钥,如果密钥正确,则允许用户查看页面并在会话中设置密钥,如果错误,则发出警报消息并再次呈现表单

我如何检查回复


谢谢

我想你需要从你的PHP页面回显

if($download_key == $key){
        echo "true";
    }
    else{
        echo "false";
    }
然后在Ajax成功处理程序中,您可以检查回调中的响应。通过调用该函数,确保页面不会被发布,从而防止默认操作

$(document).ready(function() {
    $('#submit').click(function(e) {
       e.preventDefault();
        var key = $('#downloadkey').val();
        var dataString = {KEY:key};
        $.ajax({
            url: "/index.php/home/validate_key",
            type: 'POST',
            data: dataString,
            success: function(msg) {
                  if(msg=="true") 
                    {
                       alert("do something")
                    }
                    else
                    {
                       alert("do something else")
                    }                        

            }
        });           
    });
});

我想你需要回显你的PHP页面中的

if($download_key == $key){
        echo "true";
    }
    else{
        echo "false";
    }
然后在Ajax成功处理程序中,您可以检查回调中的响应。通过调用该函数,确保页面不会被发布,从而防止默认操作

$(document).ready(function() {
    $('#submit').click(function(e) {
       e.preventDefault();
        var key = $('#downloadkey').val();
        var dataString = {KEY:key};
        $.ajax({
            url: "/index.php/home/validate_key",
            type: 'POST',
            data: dataString,
            success: function(msg) {
                  if(msg=="true") 
                    {
                       alert("do something")
                    }
                    else
                    {
                       alert("do something else")
                    }                        

            }
        });           
    });
});

您需要向页面输出一些内容。如果您只是
返回true
返回false
将不会得到任何输出

所以你可以这样做:

echo“OK”

然后可以在javascript中执行此操作:

if(msg==“OK”){..}

您可以做的另一件事是返回HTTP状态码,例如

头文件(“HTTP/1.1200ok”)


您可以在jquery中检查这一点。但是,使用第一种方法更有用,因为页面上可以有任意数量的输出,包括不同的错误消息等。

您需要向页面输出一些内容。如果您只是
返回true
返回false
将不会得到任何输出

所以你可以这样做:

echo“OK”

然后可以在javascript中执行此操作:

if(msg==“OK”){..}

您可以做的另一件事是返回HTTP状态码,例如

头文件(“HTTP/1.1200ok”)



您可以在jquery中检查这一点。但是,使用第一种方法更有用,因为页面上可以有任意数量的输出,包括不同的错误消息等。

您的问题/问题是什么?您可以在success函数中检查AJAX响应。@Utkanos yes,它为我提供了一些wamp服务器索引页的html。请阅读框架如何处理AJAX请求的文档。你可能做错了。使用fuelphp时,我必须设置一个单独的REST API来处理ajax,因此codeigniter可能也是如此。请尝试使用大写的
$\u POST['KEY']
,这就是您发布它的方式(
dataString={KEY:KEY};
)您有什么问题吗?您可以在success函数中检查AJAX响应。@Utkanos yes,它为我提供了一些wamp服务器索引页的html。请阅读框架如何处理AJAX请求的文档。你可能做错了。使用fuelphp时,我必须设置一个单独的REST API来处理ajax,因此codeigniter可能也是如此。请尝试使用大写的
$\u POST['KEY']
,这就是发布它的方式(
dataString={KEY:KEY};
)当我提交表单并查看回复时,会显示一些html和css,我在回复中看不到任何正确或错误35;使用firebuug查看您正在调用的文件。当我提交表单并查看回复时,会显示一些html和css,我在回复中看不到任何正确或错误#使用firebuug查看您正在创建的文件调用。当我提交表单并查看我的回复时,它显示了一些html和css。我在回复中看不到任何正确或错误。首先,您使用codeigniter-您应该使用
$this->input->post('KEY')
,而不是
$\u post['KEY']
。您也没有URI段3。会不会是这件事毁了它?你看到的HTML输出是什么?它是一些带有CSS的随机HTML。如果你能来聊天,我可以给你看。这是wamp服务器主页的html。在我的函数中,我写了$key=$this->input->post('key');echo$key删除了所有其他内容,但我仍然看不到key的值当我提交表单并查看我的回复时,它显示了一些html和css我在回复中看不到任何正确或错误。首先,你使用codeigniter-你应该使用
$this->input->post('key')
,而不是
$\u post['key']
。您也没有URI段3。会不会是这件事毁了它?你看到的HTML输出是什么?它是一些带有CSS的随机HTML。如果你能来聊天,我可以给你看。这是wamp服务器主页的html。在我的函数中,我写了$key=$this->input->post('key');echo$key删除了其他所有内容,但我仍然看不到key的值