我有这个代码的问题,问题是函数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 è andata a buon fine premendo ok si riaggiornerà la pagina");
location.reload();
}*/
},
error: function(error){
//XMLREQQUESTOBJECT
alert("Errore nell' invio dei dati");
},
cache:false,
ifModified:false
});
}
答案 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