Ciao a tutti,
premettendo che sono novello di ajax e javascript...
Visto che me la cavicchio benino con php stavo cercando di creare una parte di un sito, quella gestionale, in maniera più user friendly senza mille refres della pagina e così mi sono imbattuto in ajax.
Quel che vorrei fare è semplice. Ho una pagina > clicco su un link > Viene incorporata una pagina con un form > Invio il form e mi viene richiamata questa pagina che era incorporata > Processati i dati inviati > Stampa
non riesco a capire la logica per farlo....
Qui cosa ho fatto: nella mia pagina principale metto un link che cliccato mi carica un piccolo form presente su un'altra pagina. Il codice ajax per incorporare la pagina: (ometto la creazione dell'oggetto xmlhttp)
codice:
function makeRequest(serverPage, objID) {
var obj = document.getElementById(objID);
xmlhttp.open("GET", serverPage, true);
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
obj.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
a questo punto nel div scelto mi compare un form presente in serverPage. Codice della pagina richiamata
codice:
<div style="border:dashed #999 thin">
<?php
if($_POST[['test'] == 'ok')
{
print $_POST['nick'];
}
else
{
?>
<form method="post" action="pagina.php" onsubmit="inviaDati(); return false;">false
<label>Nick</label>: <input type="text" name="nick">
<input type="submit" name="submit" value="Invia Dati" />
<input name="test" type="hidden" value="ok" />
</form>
<?php
}
?>
</div>
alla pressione del bottone vorrei che venisse richiamato questo codice e semplicemente processato e stampato il risultato...
codice:
function AJAXReq(method,url,bool){
if(xmlhttp){
xmlhttp.onreadystatechange = handleResponse;
xmlhttp.open(method,url,bool);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send(stringa);
}else{
alert("Impossibilitati ad usare AJAX");
}
}
//Manipolo i dati per l'invio da form
function PreparaDati(){
stringa = "";
var form = document.forms[0];
var numeroElementi = form.elements.length;
for(var i = 0; i < numeroElementi; i++){
if(i < numeroElementi-1){
stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
}else{
stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
}
}
}
function handleResponse(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
var obj = document.getElementById("pagina");
obj.innerHTML = xmlhttp.responseText;
}else{
alert("Niente da fare, AJAX non funziona :(");
}
}
}
//Invio i dati
function InviaDati(){
PreparaDati();
AJAXReq("POST","pagina.php",true);
}
ovviamente nulla... quale procedimento devo seguire?
help