0

我有以下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。另外,我需要这个函数在成功时只附加一次输入字段(目前它正在附加到每个焦点上)。问题出在哪里,我做错了什么?

4

2 回答 2

1

从 CodeIgniter 控制器方法返回true或返回false不会影响返回给客户端的内容。

相反,用于show_eror()注册错误,并在成功时输出其他内容(使用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';
    }
于 2012-06-18T10:43:23.130 回答
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');
           }
        });
于 2012-06-18T13:39:53.847 回答