problemi con ajax e php

  • Creatore Discussione Creatore Discussione shivi
  • Data di inizio Data di inizio

shivi

Nuovo Utente
14 Feb 2012
25
0
0
ciao a tutti . ho creato un semplice script ajax che mi restituisce un semplice messaggio dal file php però non va non riesco capire dove sbaglio come posso risolvere grazie mille
Codice:
<input type="text" name="query" id="query" size="50" style="height:30px;">
<input type="submit" name="submit" id="submit" onclick="validate_query();" value="Search item">

script ajax file si chiama validate.js si trova nella cartella js
Codice:
var XMLHttpRe;
var query = document.getElementById("query").value;
function getDataAjaxRequest(){
	if(window.ActiveXObject){
		XMLHttpRe = new ActiveXObject("Microsoft.XMLHTTP");
	}else if(window.XMLHttpRequest){
		XMLHttpRe = new XMLHttpRequest();
	}
	
	XMLHttpRe.onreadystatechange = function(){
		if(XMLHttpRe.readyState == 4 && XMLHttpRe.status == 200){
			document.getElementById("feedback").innerHTML = XMLHttpRe.responseText;
		}
	}
	
	XMLHttpRe.open("POST","message.php",true);
	XMLHttpRe.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	XMLHttpRe.send(query);
}


function validate_query(){
	var queryStr = document.getElementById("query").value;
	if(queryStr == ""){
		alert("Please enter item name");
		return false;
	}else{
		getDataAjaxRequest();
		//return true;
	}
}

file php
Codice:
<?php
	if(isset($_POST['query'])){
		$query = $_POST['query'];	
		echo $query;
	}else{
		echo "Il campo search item e' vuoto";
	}
?>

continua darmi il messaggio il campo search item è vuoto perchè ? grazie mille
 
Ciao,
nella funzione getDataAjaxRequest();
query non è valorizzata o meglio ha il valore di quando viene caricata la pagina quindi vuoto

dovresti passarglielo nei parametri o recuperarlo di nuovo con getElementById()

in piu credo che nel send() devi passare i dati in altro modo ( chiave=valore ) ora controllo meglio
 
Confermao che la stringa da passare deve avere la sintassi chiave=valore

ti posto una funzione che avevo trovvato in rete che crea la stringa prelevando i campi di un form intero
Codice:
function stringaPost(){
    stringa = "";
    var form = document.forms[0];
    var elementi = form.elements.length;
 
    for(var i = 0; i < elementi; i++){
        if(i < elementi-1){
            stringa += form.elements[i].name+"="+form.elements[i].value+"&";
        }else{
            stringa += form.elements[i].name+"="+form.elements[i].value;
        } 
    }
}
 

Discussioni simili