Problema con script ajax+php

  • Creatore Discussione Creatore Discussione eddiweb
  • Data di inizio Data di inizio

eddiweb

Nuovo Utente
19 Giu 2008
1
0
0
Salve ragazzi. Sulla base dello script in ajax e php presente su questo link https://www.mrw.it/ajax/articoli/creare-shoutbox-ajax-php_818.html , ho realizzato una form per inserire e visualizzare dati di utenti. in più sto cercando di passare tramite post al file mostra.php una variabile che mi serve per effettuare una query. Il problema è che quando cerco di recuperare il valore della inpubox nascosta da passare, lo script non funziona più. Ora posto il codice

mostra.php
Codice:
<?php
@include 'config.inc.php';

$para=addslashes($_POST['para']);

$query = "SELECT * FROM jos_al_inquilino ORDER BY id_inquilino DESC";
$result = @mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result) > 0)
{
  while($row = mysql_fetch_array($result))
  {
    $nome = stripslashes($row['nome']);
    $cognome = stripslashes($row['cognome']);
    $tel1 = stripslashes($row['tel1']);
    $tel2 = stripslashes($row['tel2']);
    $tel3 = stripslashes($row['tel3']);
    $fax = stripslashes($row['fax']);
    $email = stripslashes($row['email']);
    $note = stripslashes($row['note']);

    echo $para."$nome - $cognome - $tel1 - $tel2 - $tel3 - $fax - $email - $note<br>\r";

  }
}
@mysql_close();
?>

ajax_script.php
Codice:
// funzione per la chiamata dell'oggetto XMLHttpRequest


function ajax(){
  var ajaxRequest;

  try{
    // controllo per i browser diversi da IE
    ajaxRequest = new XMLHttpRequest();
  }catch (e){
    // contorollo per IE
    try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      try{
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
        // controllo per i browser che non supportano l'XMLHttpRequest
        alert("Il browser non supporta questo ShoutBox");
        return false;
      }
    }
  }
  return ajaxRequest;
}

function salva(){
  htmlRequest = ajax();
  if (htmlRequest==null){
    alert ("Il browser non supporta richieste HTTP");
    return;
  }
  // controlliamo i parametri obbligatori
  if(document.form_invio.nome.value == "" || document.form_invio.nome.value == "NULL" || document.form_invio.cognome.value == "" || document.form_invio.cognome.value == "NULL")
  {
    alert('Inserisci sia il Nick che il testo');
    return;
  }
  // inviamo i parametri al file per l'INSERT nel database
  htmlRequest.open('POST', 'http://localhost/components/com_al/class/ajax_inquilino/invia.php');
  htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  parametri = 'nome='+document.form_invio.nome.value ;
  parametri +='&cognome='+document.form_invio.cognome.value ;
  parametri +='&tel1='+document.form_invio.tel1.value ;
  parametri +='&tel2='+document.form_invio.tel2.value ;
  parametri +='&tel3='+document.form_invio.tel3.value ;
  parametri +='&fax='+document.form_invio.fax.value ;
  parametri +='&note='+document.form_invio.note.value ;
  parametri +='&email='+document.form_invio.email.value ;

  htmlRequest.send(parametri);
  // svuotiamo il modulo per il messaggio

  document.form_invio.nome.focus();
  document.form_invio.nome.value = '';
  document.form_invio.tel1.value = '';
  document.form_invio.cognome.value = '';
  document.form_invio.tel2.value = '';
  document.form_invio.tel3.value = '';
  document.form_invio.fax.value = '';
  document.form_invio.email.value = '';
  document.form_invio.note.value = '';

}

function mostra() {
  htmlRequest = ajax();
  // controllo nel caso in cui non possa richiamato l'oggetto Xmlhttp
  if (htmlRequest==null){
    alert ("Il browser non supporta richieste HTTP");
    return;
  }

      htmlRequest.onreadystatechange = function(){
    // Restituisce lo stato della richiesta
    if(htmlRequest.readyState == 4){
      // Restituice il corpo della risposta come stringa

  if (document.getElementById('modulo') != null)
    {
         document.getElementById("modulo").innerHTML = htmlRequest.responseText;
    }


    }
  }
  // chiamata della pagina PHP che estrae i records


  htmlRequest.open('POST', 'http://localhost/components/com_al/class/ajax_inquilino/mostra.php');
  htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

[COLOR="Red"][U]param = document.form_invio.nome.value;[/U][/COLOR]

    //alert(document.getElementById("nome").innerHTML);
    //param = getElementsByid('nome').getAttribute('value');

    para = 'para='+param ;

    htmlRequest.send(para);



}
// chiamata alla funzione
mostra();
// intevallo per l'aggiornamento della pagina
setInterval("mostra()",1000);

In pratica. cancello dal codice la stringa
Codice:
param = document.form_invio.nome.value;
e inserisco un valore manuale
Codice:
    param = 'prova';
tutto lo script funziona. Se tento di recuperare il valore, lo script si blocca. dove sbaglio?

Vi ringrazio in anticipo.
 
Premetto che conosco il PHP ma non sono esperto.

Dici che tenti di inviare una variabile tramite POST. Ma è tramite POST che vuoi inviare un valore ad AJAX?

Se è cosi è questo l'errore: AJAX vuole il GET.

Fammi sapere.
 
Ajax non vuole nulla

Ajax non vuole nulla.
La chiamata si rivolge al file php, che legge i dati da $_POST.
Il problema non è lì, ma in qulache errore di sintassi nello script js.
 

Discussioni simili