2012-09-27 53 views
0

嗨我对jQuery/jQuery非常陌生,并且遇到问题。 我发送的数据通过AJAX形式到php代码,但一些隐藏的输入字段是数组。 我该如何* 强文本 *创建一个函数,可以捕获来自文章的数据并保存为变量以赋予php脚本? 我也跟着修改这方面的例子:将数组从html表单传递到php文件by ajax

//Funzione per la gestione asincrona AJAX 
function xmlhttpPost(strURL) { 
//Inizializzo l'oggetto xmlHttpReq 
var xmlHttpReq = false; 
var self = this; 
// qui valutiamo la tipologia di browser utilizzato per selezionare la tipologia di oggetto da creare. 
// Se sono in un browser Mozilla/Safari, utilizzo l'oggetto XMLHttpRequest per lo scambio di dati tra browser e server. 
if (window.XMLHttpRequest) { 
self.xmlHttpReq = new XMLHttpRequest(); 
} 
// Se sono in un Browser di Microsoft (IE), utilizzo Microsoft.XMLHTTP 
//che rappresenta la classe di riferimento per questo browser 
else if (window.ActiveXObject) { 
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
//Apro il canale di connessione per regolare il tipo di richiesta. 
//Passo come parametri il tipo di richiesta, url e se è o meno un operazione asincrona (isAsync) 
self.xmlHttpReq.open('POST', strURL, true); 

//setto l'header dell'oggetto 
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 

/* Passo alla richiesta i valori del form in modo da generare l'output desiderato*/ 
self.xmlHttpReq.send(recuperaValore()); 

/* Valuto lo stato della richiesta */ 
self.xmlHttpReq.onreadystatechange = function() { 

/*Gli stai di una richiesta possono essere 5 
* 0 - UNINITIALIZED 
* 1 - LOADING 
* 2 - LOADED 
* 3 - INTERACTIVE 
* 4 - COMPLETE*/ 

//Se lo stato è completo 
if (self.xmlHttpReq.readyState == 4) { 
/* Aggiorno la pagina con la risposta ritornata dalla precendete richiesta dal web server.Quando la richiesta è terminata il responso della richiesta è disponibie come responseText.*/ 
aggiornaPagina(self.xmlHttpReq.responseText); 
} 
} 

} 

// HERE IS THE PROBLEM. I TRIED TO INSERT MANY VAR THAT COMES FROM FORM: id_p_vis (ARRAY), id_p_home (ARRAY), id, id_sub, data_gg, n_gg and I need to give to a php file where I will use by $_POST['id'], ..... 

/*Questa funzione recupera i dati dal form.*/ 
function recuperaValore() { 
var form = document.forms['form']; 
var id_p_vis = form.getElementById["idpvis"]; 
var id_p_home = form.getElementById["idphome"]; 
var id = form.id.value; 
var id_sub = form.id_sub.value; 
var data_gg = form.data_gg.sub.value; 
var n_gg = form.n_gg.value; 

valore = 'id=' + escape(id); 


return valore; 
} 
/*Questa funzione viene richiamata dall'oggetto xmlHttpReq per l'aggiornamento asincrono dell'elemento risultato*/ 
function aggiornaPagina(stringa){ 
document.getElementById("span12").innerHTML = stringa; 

你能帮我解决这个问题?

谢谢你,再见

缺口 }

+1

你有没有看看json_decode? http://php.net/manual/en/function.json-decode.php – EGOrecords

回答

1

如果你使用jQuery,你应该切换到jQuery的ajax函数。

您也可以从表单的所有字段一气呵成:

$('form').submit(function() { 
    // serialize all form fields 
    var data = $(this).serialize(); 

    // use jQuery ajax 
    $.ajax({ 
     type: 'POST', 
     url: strURL, 
     data: data 
    }) 
    .done(function(returned_data) { 
     console.log(returned_data); 
    }); 
}); 
+0

以及如何插入我的ajax.js文件中的方法?对不起,我的虚拟问题,但我有点困惑 – nick

+0

我试图在我的ajax.js文件中使用它,但我得到一个错误:ReferenceError:$未定义。我把一个$(document).ready(function(){)};功能。 – nick

+0

现在我导入jQuery库,我没有错误,但它似乎不工作。我看到链接栏上的所有表单数据后?像risultati.php?val = 1&rss = 2%......我认为一些错误 – nick

相关问题