ajax/CodeIgniter(PHP):在PHP中返回TRUE/FALSE,如何让jQuery看到这一点?
我构建了一个检查用户名的函数。我使用它作为CodeIgniter中表单验证的回调,它工作得很好。但是,我还想将它与AJAX一起使用,以动态检查用户是否启用了JS。所以我的控制器有:ajax/CodeIgniter(PHP):在PHP中返回TRUE/FALSE,如何让jQuery看到这一点?,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我构建了一个检查用户名的函数。我使用它作为CodeIgniter中表单验证的回调,它工作得很好。但是,我还想将它与AJAX一起使用,以动态检查用户是否启用了JS。所以我的控制器有: function check_username($s = FALSE) { if ($s): $this->db_common->like('username', $s); $query = $this->db_common->get('users');
function check_username($s = FALSE)
{
if ($s):
$this->db_common->like('username', $s);
$query = $this->db_common->get('users');
if ($query->num_rows() > 0):
$this->form_validation->set_message('check_username', 'Username taken. Choose another!');
return FALSE;
else:
return TRUE;
endif;
else:
echo 'Username required';
endif;
}
我的HTML/JS是这样的:
$(document).ready(function()
{
var delayed;
$("#username").keyup(function()
{
clearTimeout(delayed);
var value = this.value;
if (value)
{
delayed = setTimeout(function() {
$.ajax
({
type: "POST",
url: "<?php echo base_url(); ?>auth/check_username/",
data: $("#username").val(),
success: function(html)
{
$("#username_check").html(html);
}
});
}, 100);
}
});
});
$(文档).ready(函数()
{
var延迟;
$(“#用户名”).keyup(函数()
{
清除超时(延迟);
var值=此值;
如果(值)
{
延迟=设置超时(函数(){
$.ajax
({
类型:“POST”,
url:“auth/check_username/”,
数据:$(“#用户名”).val(),
成功:函数(html)
{
$(“#用户名检查”).html(html);
}
});
}, 100);
}
});
});
基本上,如果用户名存在,我将返回FALSE;如果用户名确实存在,则返回TRUE。如何让jQueryAjax看到这一点?基本上,我希望jQuery检查它是否为false,然后说“username exists”,如果为true,则说“username is ok”
基本上,如果用户名存在,我将返回FALSE;如果用户名确实存在,则返回TRUE。如何让jQueryAjax看到这一点
你不能直接。我将输出0
或1
基本上,如果用户名存在,我将返回FALSE;如果用户名确实存在,则返回TRUE。如何让jQueryAjax看到这一点
你不能直接。我将输出
0
或1
我将从PHP脚本中返回true或false作为JSON布尔值,并使用javascript的eval()函数将其计算为javascript变量。我将从PHP脚本中返回true或false作为JSON布尔值,并使用javascript的eval()函数将其计算为javascript变量。执行以下操作:
echo 'ok';
return TRUE;
原因是jQuery看不到PHP返回的布尔值,因为它们没有发送到浏览器的输出。执行以下操作:
echo 'ok';
return TRUE;
这是因为jQuery看不到PHP返回的布尔值,因为它们没有发送到浏览器的输出。有一种方法可以使用PHP和jQuery来实现。这里有一个例子 只需让php脚本回显true或false即可 PHP->echo-true;或回声假
$.post("your_url/your_class/your_method", { } ,
function(data) {
if(data) alert('true');
else alert('false');
}, "json")
.error(function() { //alert("an AJAX error occurred!");
});
有一种方法可以通过PHP和jQuery实现。这里有一个例子 只需让php脚本回显true或false即可 PHP->echo-true;或回声假
$.post("your_url/your_class/your_method", { } ,
function(data) {
if(data) alert('true');
else alert('false');
}, "json")
.error(function() { //alert("an AJAX error occurred!");
});
问题是,我需要在其中保留TRUE和FALSE,以便我的CodeIgniter表单验证回调正常运行。这是必须的。啊。。。如果它只包含文本TRUE或FALSE,我想你可以做“if(html==“TRUE”)返回TRUE;else返回FALSE;问题是我需要在其中保留TRUE和FALSE,以便我的CodeIgniter表单验证回调正常运行。这是必需的。啊……如果它只包含文本TRUE或FALSE,我想你可以做“if”(html==“TRUE”)返回TRUE;否则返回false;