Téléchargement
illégal
Posez votre question Signaler

Listes liées [PhP-Ajax] [Résolu]

azerty0 1018Messages postés 27 octobre 2007Date d'inscription 20 juin 2011Dernière intervention - Dernière réponse le 25 mars 2010 à 13:22
Le code initial :
		echo '			<SELECT name="select_date_creation" id="select_date_creation" style="display:none" onChange="go();"> ';
		echo '				<OPTION selected="selected" onclick="redirection('.$defaut.",".$defaut.')">Selectionnez une date</OPTION>';
						while( ($ligne_creation_dates = mysql_fetch_assoc($req_creation_dates)) !== false)
						{
							echo "
							<OPTION value='".$ligne_creation_dates['id_date']."' onclick='redirection(".$ligne_creation_dates['id_date'].",".$defaut.")'>".$ligne_creation_dates['jour']." ".$ligne_creation_dates['formate']."</OPTION>";
						}
		echo '			</SELECT>';

		echo "			<div id='div_heure_creation'>";
		echo "			<SELECT name='select_heure_creation' id='select_heure_creation'  style='display:none'>";
		echo '				<OPTION  selected="selected" value="-1">Selectionnez un créneau</OPTION>';
		echo "			</SELECT>";
		echo "			</div>";


Le code AJAX :
	function go()
	{
		var xhr = getXhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200)
			{
				leselect = xhr.responseText;
				// On se sert de innerHTML pour rajouter les options a la liste
					document.getElementById('div_heure_creation').innerHTML = leselect;
			}
		}
		// Ici on va voir comment faire du post
		xhr.open("POST","ajax_heure_creation.php",true);
		// ne pas oublier ça pour le post
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		// ne pas oublier de poster les arguments
		// ici, l'id de la date

		// Si Date selectionné mais pas Heure
			sel = document.getElementById('select_date_creation');
			select_date_creation = sel.options[sel.selectedIndex].value;
			// On envoit que la date en POST
			var data = "select_date_creation="+select_date_creation;
			xhr.send(data);
	}
	
	function redirection(date_id, heure_id)
	{
		var xhr = getXhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200)
			{
				leselect = xhr.responseText;
				// On se sert de innerHTML pour rajouter les options a la liste
					document.getElementById('').innerHTML = leselect;
			}
		}
		// Ici on va voir comment faire du post
		xhr.open("POST","ajax_heure_creation.php",true);
		// ne pas oublier ça pour le post
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		// ne pas oublier de poster les arguments
		// ici, l'id du produit

		var data = "select_date_creation="+date_id+"&select_heure_creation="+heure_id;
		xhr.send(data);
	}

Et enfin, le code de remplacement.
<?php

	// S'il existe une heure non vide envoyé en POST
	if(isset($_POST["select_date_creation"]) && !empty($_POST["select_date_creation"]))
	{
		
		$date_selectionnee = $_POST["select_date_creation"];
	
		require_once 'singleton.php';
		
		// Ecriture du Select
		echo "<select id='select_heure_creation' name='select_heure_creation'>";
		// Option par defaut : Non du Nom de la date choisie !
		$sans_heure = -2;
		echo "<option value='' onclick='redirection(".$_POST['select_date_creation'].",".$sans_heure.")'>Choisissez un créneau</option>";

		// Selection des crénaux ou l'on peut créer un enregistrement.
		$sql = Connexion::requete("SELECT *
								   FROM entree
								   WHERE ent_id_date = '".$date_selectionnee."'
								   
								   AND ent_id NOT IN ( SELECT enr_ent_id
													   FROM enreg
													   WHERE util_id = 18
													   AND enr_date = '".$date_selectionnee."')");
		
		// Boucle écrivant les options !
		while( ($ligne_heure_creation = mysql_fetch_assoc($sql)) !== false )
		{
			$heure_deb = $ligne_heure_creation['ent_heure_deb'];
			$heure_fin = $ligne_heure_creation['ent_heure_fin'];
			
			echo "<OPTION value='".$ligne['ent_id']."' onclick='redirection(".$date_selectionnee.",".$sans_heure.")'>De".$heure_deb." à ".$heure_fin."</OPTION>";
		}
		
		echo "</select>";
	}
	
	else
	{
		$defaut = -1;
		// Selection de la Categorie
		echo "			<SELECT name='select_heure_creation' id='select_heure_creation' style='display:none'>";
		echo '				<OPTION  selected="selected" value="-1" onclick="redirection('.$defaut.','.$defaut.')">Selectionnez un créneau</OPTION>';
		echo "			</SELECT>";

	}

?>

Je ne comprends vraiment pas pourquoi ca marche pas... Quelqu'un aurait-il une idée ?
Lire la suite 

Listes liées [PhP-Ajax] »

1 réponses
Réponse
+0
moins plus
Pfouah, c'est trop laid comme ça, si qqn est opé, demandez moi, jvous enverrai les codes...
Ajouter un commentaire
Ce document intitulé « Listes liées [PhP-Ajax] » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?