Javascript serializeArray()函数和其他东西
我对这段代码有一个问题,问题是modificaAssenza函数中的$.ajax和我发送给服务器的数据,如果我点击复选框“giustificaAssenza”,序列化数组捕获的name=“giustificaAssenza”和value=“1”会被存储到formData中,但在php中,Javascript serializeArray()函数和其他东西,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我对这段代码有一个问题,问题是modificaAssenza函数中的$.ajax和我发送给服务器的数据,如果我点击复选框“giustificaAssenza”,序列化数组捕获的name=“giustificaAssenza”和value=“1”会被存储到formData中,但在php中,if(isset($\u POST['giustificaAssenza')中的代码)永远不要执行。 我还尝试在将数据发送到服务器和所有服务器之后查看formData变量的内容 数据被正确地存储到数组中,但当我将
if(isset($\u POST['giustificaAssenza')中的代码)
永远不要执行。
我还尝试在将数据发送到服务器和所有服务器之后查看formData变量的内容
数据被正确地存储到数组中,但当我将数据发送到服务器时,似乎是使用此指令存储的数据
formData.push($('#form_assenza').serializeArray());
不再发送到服务器
HTML:
PHP:
修改:
formData.push($('#form_assenza').serializeArray());
与:
并使用$\u POST['form\u assenza\u serialized']
阅读它,它将包含一个JavaScript数组
我认为您最好使用如下所述:
$("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
});
}
if(isset($_POST['operazione']) && $_POST['operazione']==="modificaAssenza")
{
try{
if(isset($_POST["idAssenza"]) && isset($_POST["codiceFiscale"]) & isset($_POST["data"]) && isset($_POST['tipoAssenza'])){
//prima mi creo l'assenza appena passata
$idAssenza=$_POST["idAssenza"];
$studente_codiceFiscale=$_POST["codiceFiscale"];
$data=new DateTime(date($_POST["data"]));
$data=$data->format("Y-m-d");
$tipoAssenza=$_POST["tipoAssenza"];
$giustificaAssenza=0;
if(isset($_POST['giustificaAssenza'])){
echo("test");
$giustificaAssenza=(int)$_POST['giustificaAssenza'];
}
$minutiRitardo=null;
if(isset ($_POST['minutiRitardo']) && $_POST['minutiRitardo']>0)
{
$minutiRitardo=(int)$_POST['minutiRitardo'];
}
$oraEntrata=null;
if(isset($_POST['oraEntrata']) && $_POST['oraEntrata']!="undefined")
{
$oraEntrata=$_POST['oraEntrata'];
}
$giustificaEntrata=0;
if(isset($_POST['giustificaEntrata'])){
$giustificaEntrata=(int)$_POST['giustificaEntrata'];
}
$oraUscita=null;
if(isset($_POST['oraUscita']) && $_POST['oraUscita']!="undefined"){
$oraUscita=$_POST['oraUscita'];
}
$giustificaUscita=0;
if(isset($_POST['giustificauscita'])){
$giustificaUscita=(int)$_POST['giustificaUscita'];
}
$annotazione=null;
if(isset($_POST['annotazione'])&& $_POST['annotazione']!=""){
$annotazione=trim($_POST['annotazione']);
echo("prova2");
}
$assenza_update=new Assenza($idAssenza,$studente_codiceFiscale,$data,$tipoAssenza,$giustificaAssenza,$minutiRitardo,$oraEntrata,$giustificaEntrata,$oraUscita,$giustificaUscita,$annotazione);
//updateAssenza($conn,$assenza_update,$_SESSION['codiceFiscale'],$_SESSION['corso'],$_SESSION['classe']);
}
else{
throw new Exception("Impossibile accedere alla data o all'id-Assenza o al codice fiscale");
}
}
catch(Exception $e){
$query="UNLOCK TABLES;";
mysqli_query($conn,$query);
echo($e->getMessage());
}
}
formData.push($('#form_assenza').serializeArray());
formData.push({ name: 'form_assenza_serialized', value: $('#form_assenza').serializeArray() });