Ajax: stampare risultato in altra pagina

E' possibile fare stampare il risultato di ajax in un'altra pagina? ho provato anche a stampare il risultato in una parte della pagina stessa del form ma mi restituisce questo errore: Errore di run-time sconosciuto

Quello che vorrei fare è, se non è possibile stampare il risultato in altra pagina, ottenere il risultato nella stessa pagina del form, ma senza far scomparire i campi form.

questo è un esempio di quello che ho fatto su ajax nella gestione dei due DIV

function stateChanged()
{
  if (xmlhttp.readyState == 4)
  {
    document.getElementById("stampa").innerHTML = xmlhttp.responseText;
    //window.location = "index.php?section=ricerca";
  } else {
    document.getElementById("txtHint").innerHTML = '<br/>Attendere ricerca in corso...';
  }
}

il form invece lo avrei organizzato in questa maniera:

<form name="ricerca_seriale">
 <input type="text" name="nseriale" value="" />
  <div id="txtHint">
   <input type="submit" name="cerca" value="Avvia ricerca..." onClick="ricerca_nseriale()" />
  </div>
</form>
<div id="stampa"></div>

Grazie  :bye:

inviato 7 anni fa
Nando
modificato 7 anni fa
X 0 X

Per stampare il risultato in un'altra pagina ajax forse non serve...

risposto 7 anni fa
Mario Santagiuliana
X 0 X
Per stampare il risultato in un'altra pagina ajax forse non serve...

Perché? sinceramente mi andrebbe bene anche nella stessa pagina solo se funzionasse.

Mi sta dando moltissimi problemi e purtroppo per quello che devo fare mi seve per forza Ajax, se scrivo la form in questo modo:

<form name="ricerca_seriale">
 <input type="text" name="nseriale" value="" />
  <input type="submit" name="cerca" value="Avvia ricerca..." onClick="ricerca_nseriale()" />
</form>
<div id="txtHint"></div>

mi stampa il risultanto e poi salta alla home page  :wallbash:

se invece scrivo la form così:

<form name="ricerca_seriale">
 <input type="text" name="nseriale" value="" />
  <div id="txtHint"><input type="submit" name="cerca" value="Avvia ricerca..." onClick="ricerca_nseriale()" /></div>
</form>

allora funziona, la cosa è veramente da suicidio, in un altra pagina, ovunque metto il div i risultati compaiono senza problemi.

Un altro problema è, in alcune pagine ho messo come pulsante un'immagine, che con l'evento onClick punta ad ajax e funziona, in altre invece mi va in errore.

Non so più che fare...  :dunno:

risposto 7 anni fa
Nando
modificato 7 anni fa
X 0 X

I codice html che hai fornito sono corretti.

Il problema risiede nel tuo javascript che fa i vari redirect. Se non ci fai vedere quello difficilmente si può dire qualcosa, cos'è questa "ricerca_nseriale()"?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Ho cambiato questa parte da:

<input type="submit" name="cerca" value="Avvia ricerca..." onClick="ricerca_nseriale()" />

a:

<input type="image" name="cerca" onClick="ricerca_nseriale(); return false;" />

non capisco dove sia il problema ma cmq funziona, rivedendo l'altra pagina ho notato che l'unica differenza è la presenza di "return false". Cmq l'importante che mi funzioni, un'altra cosa che invece non riesco a spiegarmi è perché per farmi stampare l'array POST devo scrivere $_REQUEST['var'] e non : $_POST['var']? con $_POST non stampa nulla.

risposto 7 anni fa
Nando
modificato 7 anni fa
X 0 X

Se invii i dati tramite un array post devi riuscire ad accedervi da $_POST.

Se continui a non mostrarci il codice(come già ti avevo chiesto prima) difficilmente si possono dare delle risposte.

risposto 7 anni fa
Mario Santagiuliana
X 0 X

In questo caso se stampo gli array come POST mi vengono restituiti tutti i record del db, in altre pagine tipo questa cambiando solo il tipo di richiesta, mi restituisce degli array vuoti.

La parte php non so se può interessarti, è semplicemente una connessione al db con la classica select * from ...

file ajax:

var xmlhttp;
function cerca_nseriale()
{
   xmlhttp = GetXmlHttpObject();
   
   if (xmlhttp==null)
   {
      alert ("Il Browser non supporta HTTP Request");
      return;
   }

     var f = document.forms["frm_ricerca_nseriale"];   
     var nseriale = f.elements["nseriale"].value;
     var tipo_ordine = f.elements["tipo_ordine"].value;
     var tipo_scala = f.elements["tipo_scala"].value;
   var url="php/elenchi/scrivi_pagina_nseriale.php";
   
   url=url+"?nseriale="+nseriale+"&tipo_ordine="+tipo_ordine+"&tipo_scala="+tipo_scala;
   xmlhttp.open("POST",url,true);
     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xmlhttp.setRequestHeader("Content-length", url.length);
     xmlhttp.setRequestHeader("Connection", "close");
     xmlhttp.onreadystatechange = stateChanged;
   xmlhttp.send(url);
}
function stateChanged()
{
   if (xmlhttp.readyState == 4)
   {
      document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
   } else {
      document.getElementById("txtHint").innerHTML = 'Ricerca in corso...;
   }
}
function GetXmlHttpObject()
{
   if (window.XMLHttpRequest)
   {
      return new XMLHttpRequest();
   }
   if (window.ActiveXObject)
   {
      return new ActiveXObject("Microsoft.XMLHTTP");
   }
   return null;
}

modulo form:

<form name="frm_ricerca_nseriale">
Nr. seriale <input class="ricerca_seriale" type="text" name="nseriale" />
Ordina per <input type="hidden" name="tipo_ordine" />
<script type="text/javascript">
<!--
function sel_ordina(val_ordina)
{
   var f = document.frm_ricerca_nseriale;  
   f.tipo_ordine.value = val_ordina.options[val_ordina.selectedIndex].value;
}
//-->
</script>
<select name="ordina" class="textbox" onChange="sel_ordina(this)">
 <option value="numero">Nr. postazione</option>
 <option value="ckin">Check-In</option>
 <option value="gate">Gate</option>
 <option value="modello">Modello</option>
 <option value="sn_sab">s/n SAB</option>
 <option value="sn_arcdata">s/n Arc Data</option>
 <option value="sn_ier">s/n IER</option>
</select>
<input type="hidden" name="tipo_scala" value="ASC" />
<script type="text/javascript">
<!--
function sel_scala(val_scala)
{
   var f = document.frm_ricerca_nseriale;  
   f.tipo_scala.value = val_scala.options[val_scala.selectedIndex].value;
}
//-->
</script>
<select name="scala" class="textbox" onChange="sel_scala(this)">
 <option value="ASC">Crescente</option>
 <option value="DESC">Decrescente</option>
</select>
<input type="image" src="images/botton_ricerca.png" name="cerca" onClick="cerca_nseriale(); return false;" />
</form>
risposto 7 anni fa
Nando
modificato 7 anni fa
X 0 X

Quella che interessa è la parte del php che riceve e processa i dati, se l'errore può essere li è bene vederla.

Ma tu sei proprio sicuro che con la tua funzione invii i dati tramite un metodo post?

   url=url+"?nseriale="+nseriale+"&tipo_ordine="+tipo_ordine+"&tipo_scala="+tipo_scala;

   xmlhttp.open("POST",url,true);

Nella tua funzione stai inviado i dati come array GET e comunque non invii nessun parametro con il metodo post...

risposto 7 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda