Conseil Ajax

Résolu/Fermé
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 - 4 sept. 2013 à 18:41
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 - 5 sept. 2013 à 20:06
Bonjour,

je suis en train de coder une "application web"
en php, javascript et ajax.

En gros j'ai une page html qui possede 2 listbox.

Et je souhaiterais qu'une fois les 2 valeurs selectionnées et remplies, un code ajax s'execute qui me chercherait une donnée dans une base de données.

J'ai procédé a une fonction javascript tel que celle ci :

<select id="list_lang" class="dash_list" size="4" onClick="setLangList(this.value);request(readData)">

Lors d'un click. Jusque là pas de soucis.

Je voulais connaitre vos impressions sur la manière de faire pour mon code ajax derriere cela.


		function getXMLHttpRequest() {
			var xhr = null;
			
			if (window.XMLHttpRequest || window.ActiveXObject) {
				if (window.ActiveXObject) {
					try {
						xhr = new ActiveXObject("Msxml2.XMLHTTP");
					} catch(e) {
						xhr = new ActiveXObject("Microsoft.XMLHTTP");
					}
				} else {
					xhr = new XMLHttpRequest(); 
				}
			} else {
				alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
				return null;
			}
			
			return xhr;
		}
		
		function request(callback) {
			var xhr = getXMLHttpRequest();
			 
			xhr.onreadystatechange = function() {
				if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
					callback(xhr.responseText);
				}
			};
			var cat = encodeURIComponent(document.getElementById("cat").value);
			var lang = encodeURIComponent(document.getElementById("lang").value);
			xhr.open("GET", "affichertext.php?cat=" + cat + "&lang=" + lang, true);
			xhr.send(null);
		}
		 
		function readData(sData) {
			//document.getElementById('dash_thisSiteName"').value = sData;
		}



1) Jusqu'ici tout va bien ?

Voici la page que j'appelle pour effectuer ma requete :


<?php

header("Content-Type: text/plain");
include("connect.php");
 
$cat = (isset($_GET["cat"])) ? $_GET["cat"] : NULL;
$lang = (isset($_GET["lang"])) ? $_GET["lang"] : NULL;

if ($cat && $lang) {
    try {
	$pdo = new PDO($dns);
	$req_site=$pdo->prepare("SELECT max(id_site), site_name FROM tmp.dash_site GROUP BY site_name");
	$req_site->execute();
	$nomsite = null;
	//echo "nom du site";
	if (!$req_site) {
	echo "Une erreur est survenue.n";
	exit;
	}
	for ($i = 1; $row_site = $req_site->fetch(); $i++) {
		$nomsite = $row_site['site_name'];
		echo $nomsite;
	}		
} catch ( Exception $e ) {
	echo "Connection à la base impossible : ", $e->getMessage();
	die();
}
} else {
    echo "Choississez une catégorie et une langue de site";
}

?>


Ne soyez pas trop regardant sur la requète, c'était pour tester que je recupère bien une valeur.


2) Est-ce que je fais bien de faire comme cela, ou c'est tout simplement horrible de coder comme ça ? c'est la premiere fois que je m'essayer à l'AJAX, j'ai zieuté sur le SDZ et divers autres site, mais je n'ai pas eu une manière de coder a proprement parler.

Merci d'avance,


Xineroks

1 réponse

Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 3
5 sept. 2013 à 20:06
Bon j'ai trouvé :)
Merci quand même
0