jQuery和ParseError

时间:2013-01-29 10:29:04

标签: jquery json codeigniter

当我尝试将json数据发送到codeigniter中的控制器时,我无法弄清楚为什么我继续得到parseerror。 这是我的简单形式:

<div style="" id="message_abuso" class="error">parsererror</div>
<div style="display:none;" id="inviato_abuso"> Notifica abuso inviata! </div>
<div style="display: none;" id="waiting_abuso"> 
<img alt="Loader" title="Loader" src="http://****:8888/addons/default/themes/THEME/img/ajax-loader.gif"> 
</div>
<form id="form_abuso" style="display: block;"> 
<input type="hidden" value="1" name="id_utente" id="id_utente"> 
<input type="hidden" value="3" name="id_animale" id="id_animale"> 
<textarea name="testo" id="testo_abuso" rows="10" cols="20"></textarea> 
<input type="submit" class="riporta_abuso" value=""> 

这是我的jquery脚本:

<script type="text/javascript">
    $(document).ready(function(){
         $('.riporta_abuso').click(function() {

                $('#waiting_abuso').show(500).delay(2000);
                $('#form_abuso').hide(0);
                $('#message_abuso').hide(0);
                $('#inviato_abuso').hide(0);

                    $.ajax({
                        type : 'POST',
                        url : 'http://****:8888/canile/notifica_abuso',
                        dataType : 'json',
                            data:  {
                                id_animale: $('#id_animale').val(),
                                id_utente:  $('#id_utente').val(),
                                testo:      $('#testo_abuso').val(),
                            },
                            success : function(data){
                                $('#waiting_abuso').hide(500);
                                $('#message_abuso').removeClass().addClass((data.error === true) ? 'error' : 'success')
                                    .text(data.msg).delay(2000);
                                if (data.error === true)
                                {
                                    $('#form_abuso').delay(2000).show(500);
                                    $('#message_abuso').show(500);
                                }
                                else
                                {
                                    $('#inviato_abuso').text(data.msg).delay(2000).show(500);
                                    $('#form_abuso').delay(2500).show(500);
                                }
                            },
                            error : function(XMLHttpRequest, textStatus, errorThrown) {
                                $('#waiting_abuso').hide(500);
                                $('#inviato_abuso').hide(0);
                                $('#message_abuso').removeClass().addClass('error')
                                    .text(textStatus).delay(2000).show(500);
                                $('#form_abuso').delay(2000).show(500);
                            }
                        });

                        return false;
                    });
                });
                </script>

这是控制器:

function notifica_abuso()
        {
            $id         = $this->input->post('id_animale');
            $id_utente  = $this->input->post('id_utente');
            $testo      = trim($this->input->post('testo'));



            if( is_numeric($id) && is_numeric($id_utente) && $testo != "")
            {               
                if( ! $this->canile_abusi_m->controlla_esistenza($id) )
                {
                    if( ! $this->canile_abusi_m->notifica($id , $id_utente , $testo) )
                    {
                        //Impossibile salvare
                        $risposta['error'] = true;
                        $risposta['msg'] = "Cant save.";                            
                        echo json_encode($risposta);
                        exit;
                    }
                }

                //Non ci sono errori
                $risposta['error'] = false;
                $risposta['msg'] = "";                          
                echo json_encode($risposta);
                exit;
            }
            else{
                //Non sono id numerici
                $risposta['error'] = true;
                $risposta['msg'] = "Errors errori";                         
                echo json_encode($risposta);
                exit;
            }



        }

每次我得到parserror

1 个答案:

答案 0 :(得分:0)

也许这可行,取而代之:

testo:      $('#testo_abuso').val(),

由此:

testo:      $('#testo_abuso').val()

(在你的第二句话中)