Ajax调用的响应
我正在使用ajax进行小型表单验证。用户提供一个密钥,当表单提交时,我调用一个ajax方法validate_key。Ajax调用的响应
我的功能是
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";
}
然后。请确保您通过调用preventDefault()
函数来防止默认操作,以避免发布页面。
$(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")
}
}
});
});
});
echo不起作用 – 2012-08-06 14:02:08
当我提交表单时看到我的回应它显示了一些HTML和CSS我无法看到任何真实或错误在我的回应# – 2012-08-06 14:07:56
使用firebuug来查看你打电话给哪个文件。 – Shyju 2012-08-06 14:20:06
您需要输出内容到页面。如果你只是return true
或return false
什么都不会输出。
所以做这样的事情:
echo "OK"
然后你就可以在你的JavaScript做到这一点:
if(msg == "OK"){ .. }
你可以做的另一件事是例如返回一个HTTP状态代码
header("HTTP/1.1 200 OK");
你可以在你的jQuery检查。然而,使用第一种方法更有用,因为您可以在页面上输出任意数量的输出,包括不同的错误消息等。
回声不工作 – 2012-08-06 14:01:50
当我提交表单,看看我的反应也显示了一些HTML和CSS我不能看到任何东西真的还是假的,我响应 – 2012-08-06 14:09:07
一开始你”重新使用codeigniter - 你应该使用'$ this-> input-> post('KEY')'而不是'$ _POST ['KEY']''。你也没有一个URI段3.可以从这个破坏它吗?什么是你看到的HTML输出? – 2012-08-06 14:14:35
你的问题是什么?您在成功功能中检查AJAX响应。 – Utkanos 2012-08-06 13:55:39
@Utkanos是的,它给了我一些我的wamp服务器索引页的html – 2012-08-06 13:57:01
阅读你的框架如何处理AJAX请求的文档。你可能做错了。使用fuelphp时,我必须设置一个单独的REST API来处理ajax,所以也许它与codeigniter一样。 – Matt 2012-08-06 13:57:37