Ajax .serializeArray()函数和其他东西

时间:2013-10-05 09:32:08

标签: javascript php jquery ajax

我有这个代码的问题,问题是函数modificaAssenza中的$ .ajax和我发送到服务器的数据,如果我点击复选框“giustificaAssenza”名称=“giustificaAssenza”和值= serializeArray捕获的“1”被记忆到formData中,但在php中if(isset($_POST['giustificaAssenza'))内的代码永远不会执行。 在将数据发送到服务器之后,我也尝试查看formData变量的内容 数据被正确记忆到数组中,但是当我向服务器发送数据时,似乎是用这条指令记忆的数据 <{1}}不再发送到服务器。

HTML:

formData.push($('#form_assenza').serializeArray());

JAVASCRIPT CODE

<form id="form_assenza" action="">
<p>
<span id="giustificaAssenza">Giustifica Assenza: <input type="checkbox" name="giustificaAssenza" value="1"></span>
<span id="minutiRitardo">Minuti Ritardo: <input type="text" value="0"></span>
<span id="oraEntrata">Ora Entrata:</span>
<span id="giustificaEntrata">Giustifica Entrata: <input type="checkbox" name="giustificaEntrata" value="1"></span>
<span id="oraUscita">Ora Uscita:</span>
<span id="giustificaUscita">Giustifica Uscita: <input type="checkbox" name="giustificaUscita" value="1"></span>
<span id="counter"></span><textarea name="annotazione" id="note" rows="4" cols="35"></textarea>
<span id="submitAssenza"></span>
</p>
</form> 

PHP:

            $("input[name='modificaAssenza']").click(function(evento){
                evento.preventDefault();



                var formData=Array();
                formData.push({name:'tipoAssenza', value:'A'},{name:'operazione',value:'modificaAssenza'},{name:'codiceFiscale',value: 'guom'},{name:'idAssenza',value: '2'},{name:'data',value: '01/02/2013'});
                formData.push({ name: this.name, value: this.value });
                formData.push($('#form_assenza').serializeArray());

                modificaAssenza(formData);
            }});
function modificaAssenza(dati){
    $.ajax({
            url:"responseregistrodocente.php",
            data:dati,
            type:"POST",
            success: function (html) {

                alert(html);
                /*if(html!="")
                {
                    alert (html);
                }
                else{
                    alert("L'operazione &egrave; andata a buon fine premendo ok si riaggiorner&agrave; la pagina");
                    location.reload();
                }*/
            },
            error: function(error){
                //XMLREQQUESTOBJECT
                alert("Errore nell' invio dei dati");

            },
            cache:false,
            ifModified:false
        });

}

1 个答案:

答案 0 :(得分:0)

修改:

formData.push($('#form_assenza').serializeArray());

使用:

formData.push({ name: 'form_assenza_serialized', value: $('#form_assenza').serializeArray() });

$_POST['form_assenza_serialized']读取它,它将包含一个JavaScript数组。

我认为您最好使用serilize,如下所述:posting jquery .serializeArray(); output through ajax