passaggio variabili tramite javascript a file php (era ajax)

Salve a tutti

e grazie per l'attenzione ho problema da sottoporvi...ovvero il passaggio di varibili

<script type="text/javascript" language="Javascript">

function createXMLHttpRequest() {

var ua;

if(window.XMLHttpRequest) {
    try {
      ua = new XMLHttpRequest();
    } catch(e) {
      ua = false;
    }
  } else if(window.ActiveXObject) {
    try {
      ua = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
      ua = false;
    }
  }
  return ua;
}

var req = createXMLHttpRequest();

function sendRequest(id) {
  var a = document.search_.a.value;
  var da = document.search_.da.value;
  req.open('get', 'gest_ordini_server.php?id= ' + document.search_.stato.value);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

function handleResponse() {

  if(req.readyState == 4){
    document.getElementById('state_loading').style.display="none"
   var response = req.responseText;
    var update = new Array();

    if(response.indexOf('||' != -1)) {
      update = response.split('||');
      document.getElementById(update[0]).innerHTML = update[1];
    }
  }
  else
  //alert("loading");
  document.getElementById('state_loading').style.display="block";
}
</script>

queste sono le funzioni javascript che mi gestiscono il passaggio di variabili

e questo  e'  il file php

<?php
$id_stato=$_GET['id'];
 mysql_select_db($database_mozzarelle, $mozzarelle);
$query_test = "Select ordine.id, ordine.pagamento, ordine.totale, ordine.iva, ordine.spedizionetipo, ordine.dataordine, ordine.cliente, ordine.`count`, ordine.scheda_cliente, ordine.n_ddt, ordine.fatturato, ordine.collegamento_fatt, ordine.richiestafattura, ordine.pagato, ordine.evaso, eventiordine.idordine, eventiordine.stato From ordine Inner Join eventiordine ON ordine.id = eventiordine.idordine Where eventiordine.stato Like '$id_stato'";
$test = mysql_query($query_test, $mozzarelle) or die(mysql_error());
$row_test = mysql_fetch_assoc($test);
$totalRows_test = mysql_num_rows($test); 
?>

ora siccome passo stringhe del tipo 'aggiornato amministrativamente' la query non mi da' nessun risultato

una cosa interessante e' questa: se passo 'evaso' tutto  e' ok allora credo ci sia un problema con il fatto che la stringa che viene passata e' con uno spazio....come risolvo?!

inviato 10 anni fa
vago
vago
1
modificato 10 anni fa
X 0 X

Sincerametne non penso di aver capito perfettamente il tuo problema, se si tratta di togliere gli spazi ad una variabile, puoi usare la funzione trim():

http://it2.php.net/manual/it/function.trim.php

$id_stato= trim($_GET['id']);

 mysql_select_db($database_mozzarelle, $mozzarelle);

$query_test = "Select ordine.id, ordine.pagamento, ordine.totale, ordine.iva, ordine.spedizionetipo, ordine.dataordine, ordine.cliente, ordine.`count`, ordine.scheda_cliente, ordine.n_ddt, ordine.fatturato, ordine.collegamento_fatt, ordine.richiestafattura, ordine.pagato, ordine.evaso, eventiordine.idordine, eventiordine.stato From ordine Inner Join eventiordine ON ordine.id = eventiordine.idordine Where eventiordine.stato Like '%$id_stato%'";

poi prova anche a modificare il LIKE come ti ho scritto sopra e vedi se cambia qualcosa...

Ho aggiunto %% prima e dopo quello che devi cercare tu, questi due '%%' sono dei caratteri speciali che dicono a mysql di prendere tutte quelle stringhe che hanno al loro interno $id_stato a prescindere da quello che c'è prima (%$id_stato) e tutto quello che c'è dopo ($id_stato%)..[%$id_stato%]

Ti rimando alla doc ufficiale sul like:

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

PS nel tuo script fai la selezione del DB:

mysql_select_db($database_mozzarelle, $mozzarelle);

ma non vedo la connessione, prob la fai prima, nel caso te la fossi dimenticata devi aggiungerla...

[$mozzarelle = mysql_connect("xxx","aaaa","bbbb");]

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
modificato 10 anni fa
X 0 X

prima cosa grazie..... ;)

seconda putroppo avevo gia' fatto come dici tu ma ti spiego

quando passo una stringa tipo 'aggiornato amministrativamente'  nel passaggio diventa 'aggiornato2%amministrativamente'  o una roba simile ed e' chiaro che non mi trova una mazza ;)

forse dovrei usare il il post come metodo di passaggio ma la mia inesperienza mi blocca.

p.s. ho un file di connessione da un'altra parte che includo...

la connessione c'e'  ;)

risposto 10 anni fa
vago
vago
1
X 0 X

prima cosa grazie..... ;)

seconda putroppo avevo gia' fatto come dici tu ma ti spiego

quando passo una stringa tipo 'aggiornato amministrativamente'  nel passaggio diventa 'aggiornato2%amministrativamente'  o una roba simile ed e' chiaro che non mi trova una mazza ;)

forse dovrei usare il il post come metodo di passaggio ma la mia inesperienza mi blocca.

p.s. ho un file di connessione da un'altra parte che includo...

la connessione c'e'  ;)

Ah.ok...

Allora il 'problema' è che php codifica ciò che gli passi via get, così trasforma gli spazi in %20, infatti dovresti vedere nella barra degli indirizzi:

'aggiornato%20amministrativamente'

Per avere 'aggiornato amministrativamente' dovresti decodificare quel get, php fornisce la funzione urldecode:

http://it2.php.net/manual/it/function.urldecode.php

Prova a fare:

$id_stato = urldecode($_GET['id']);

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

grazie domani provo e ti aggiorno!

risposto 10 anni fa
vago
vago
1
X 0 X

Grazie funziona!! p.s. non la conoscevo proprio la funzione php che mi hai detto...

;)

risposto 10 anni fa
vago
vago
1
X 0 X

Grazie funziona!! p.s. non la conoscevo proprio la funzione php che mi hai detto...

;)

Di niente,figurati...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda