我有以下JS代码:
var forma = $('form#mali_oglas'),
pomoc = $('div[role=pomoc]'),
div = $('.mali_oglas_pomoc'),
input = forma.find('input, textarea'),
code = forma.find('#code');
input.on('click', function(){
var name = $(':input:focus').attr("name");
pomoc.fadeOut('slow').promise().done( function(){ div.find("[data-pomoc='" + name + "']").fadeIn('slow'); });
});
code.on('focusout', function(){
console.log(code.val());
$.ajax({
type: 'POST',
url: '<?php echo base_url() ?>global_info/gi_get_ad_payment_code',
data: 'code=' + code.val(),
success: function(){
for(i = 1; i<=4; i++)
{
code.after('<label for="image' + i +'">Slika</label><input type="file" name="userfile" id="image' + i +'" />');
}
code.after('<input type="hidden" name="time" value="' + time + '"');
},
error: function(){
alert('nije uspeh');
}
}); /* KRAJ NA AJAX */
});
和Codeigniter功能:
function gi_get_ad_payment_code()
{
$q = $this->db->get_where('code_payment', array('code' => $_POST['code']));
if ($q->num_rows() == 0 ){
return FALSE;
} else
{
return TRUE;
}
}
问题如下:即使codeigniter函数返回false,它也总是成功的。此外,我需要此函数在成功时仅添加一次输入字段(此时它会附加到每个焦点上)。 问题出在哪里,我做错了什么?
答案 0 :(得分:1)
从CodeIgniter控制器方法返回true
或false
不会影响返回给客户端的内容。
相反,如果成功,请使用show_eror()
注册错误,并输出 else (使用echo
或更优选CodeIgniters View system);
$q = $this->db->get_where('code_payment', array('code' => $_POST['code']));
if ($q->num_rows() == 0 ){
show_error('Whoops, no results :(');
} else
{
echo 'Success';
}
答案 1 :(得分:0)
您可以从服务器返回多个值,并在“成功”ajax事件中执行您想要的操作(添加参数“data”):
$.ajax({
type: 'POST',
url: '<?php echo base_url() ?>global_info/gi_get_ad_payment_code',
data: 'code=' + code.val(),
success: function(data){
switch(data)
{
case 'success':
code.after('<label for="image' + i +'">Slika</label><input type="file" name="userfile" id="image' + i +'" />');
break;
case 'whoops':
// ....
break;
default:
code.after('<input type="hidden" name="time" value="' + time + '"');
break;
}
},
error: function(){
alert('nije uspeh');
}
});