Bug liste déroulante

Fermé
dossier - 23 janv. 2012 à 16:08
 dossier - 24 janv. 2012 à 15:16
Bonjour, alors je voudrais faire une requête permettant d'afficher le nom + le numéro de téléphone dans une liste déroulante . Pour cela c'est bon j'arrive a le faire le problème viens quand je clique sur valider , la rien ne s'affiche et je ne comprends pas pourquoi .
voici quelque lignes du code : Fiche 1

<td width="100" >
<p>Numéro de ligne</p>
<select name="phoneline" id="phoneline">
<?php
echo"";
$serveur="localhost";
$login="root";
$pwd="";
$bd="telephonie";

$phoneline=$_POST['phoneline'] ;


$connect = mysql_connect($serveur, $login, $pwd) or die ('erreur'.$connect.mysql_error());
if ($connect != 0 )

$ok=mysql_select_db ($bd, $connect) or die ('erreur'.$ok.mysql_error());
if($ok !=0)

$sql2 = 'SELECT DISTINCT phoneline, nom FROM appel, infoclient WHERE appel.phoneline = infoclient.numvoip order by phoneline desc';
$req2 = mysql_query($sql2);

while($user2 = mysql_fetch_assoc($req2))
{
$phoneline = $user2['phoneline'];
$nom = $user2['nom'];


echo'<option>'.$nom.''.$phoneline.' </option>';
}

$phoneline = $max ;


echo"";
mysql_close();
?>
</select>





Et là la suite du code une fois qu'on a valider : Fiche 2



$phoneline=$_POST['phoneline'];

$mois=$_POST['mois'];
$annee=$_POST['annee'];

$connect = mysql_connect($serveur, $login, $pwd) or die ('erreur'.$connect.mysql_error());
if ($connect != 0 )

$ok=mysql_select_db ($bd, $connect) or die ('erreur'.$ok.mysql_error());
if($ok !=0)


// Lancement de la requête
$req = "SELECT * FROM appel WHERE
phoneline = '$phoneline'

and date LIKE '%$annee%$mois%' ";

// Si il y a une erreur
$result = mysql_query($req) or die ("Exécution de la requete impossible");
if ($result==0)
{
echo' vous n\' avez pas appeller a cette date';
echo'<br><br><INPUT type="button" value="Précedent" onclick="history.back ()">';
}
else
{
echo "<center><h2>Voici les information d'appel de dont le numéro est $phoneline</h2> </center> <br> ";

// On créer une boucle pour extraire toutes les données
while ($donnee = mysql_fetch_array($result))
{


J'ai une petit idée de la raison du problème , je pense que cela est du au code qui permet d'afficher le nom + le numéro de téléphone (fiche 1) dans la liste déroulante , ce code dois faire une "fusion" des deux variables ( nom et phoneline) et que de ce fait la requête qui permet d'aller cherche les élément dans la base (fiche 2) ne trouve pas cette variable "fusionner" donc je me demande comment séparer ces deux variables , si c'est cela le problème...

un grand merci de votre attention.

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 janv. 2012 à 18:57
voir commentaires:
formulaire:
<td width="100" >
<p>Numéro de ligne</p>
<select name="phoneline" id="phoneline">
<?php
// echo"";
$serveur="localhost";
$login="root";
$pwd="";
$bd="telephonie";

// $phoneline=$_POST['phoneline'] ;
$connect = mysql_connect($serveur, $login, $pwd) or die ('Pb connexion serveur '.mysql_error());
if ($connect ){ //on teste si true

	$db=mysql_select_db ($bd, $connect) or die ('Pb selection base '.mysql_error());
	if($db ){
		$sql2 = 'SELECT DISTINCT phoneline, nom FROM appel, infoclient WHERE appel.phoneline = infoclient.numvoip order by phoneline desc';
		$req2 = mysql_query($sql2)  or die ('Pb requette 2 '.mysql_error());

		while($user2 = mysql_fetch_assoc($req2))
		{
			$phoneline = $user2['phoneline'];
			$nom = $user2['nom'];
		echo'<option value="'.$phoneline.'">'.$nom.''.$phoneline.' </option>'; //c'est de la que vient ton pb il faut mettre une value="" qui peut être differente de ce qui est affiché dans la liste
		}

		 // $phoneline = $max ; ?
	}
	mysql_close();
}
?>
</select>
<br><br><input type="submit" name="valider" value="valider"> <!-- et le name -->

<INPUT type="button" value="Précedent" onclick="history.back ()">

</form>


et traitement
<?php
if(isset($_POST['valider'])){ //le formulaire a été posté 
	$phoneline=$_POST['phoneline'];

	$mois=$_POST['mois'];
	$annee=$_POST['annee'];

	$connect = mysql_connect($serveur, $login, $pwd) or die ('erreur'.$connect.mysql_error());
	if ($connect != 0 )

	$ok=mysql_select_db ($bd, $connect) or die ('erreur'.$ok.mysql_error());
	if($ok !=0)


	// Lancement de la requête
	$req = "SELECT * FROM appel WHERE phoneline = '$phoneline' AND date LIKE '%$annee%$mois%' ";

	// Si il y a une erreur
	$result = mysql_query($req) or die ("Exécution de la requete impossible");
	if ($result==0)
	{
		echo' vous n\' avez pas appeller a cette date';
		echo'<br><br><INPUT type="button" value="Précedent" onclick="history.back ()">';
	}
	else
	{
		echo "<center><h2>Voici les information d'appel de dont le numéro est $phoneline</h2> </center> <br> ";

	// On créer une boucle pour extraire toutes les données
	while ($donnee = mysql_fetch_array($result))
	{ 



	}
} //fin if(isset($_POST['valider']))
1
Oui tu as raison Alain_42 merci le code fonction parfaitement maintenant merci encore
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
23 janv. 2012 à 16:24
Tu n'as pas de bouton à la fin de ton formulaire ???
0
oups j'avais oublier

<br><br><input type="submit" value="valider">

<INPUT type="button" value="Précedent" onclick="history.back ()">

</form>
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
23 janv. 2012 à 16:44
Avant de récupérer le contenu de ta liste déroulante, tu dois vérifier que ton bouton a bien été cliqué pour cela tu dois faire :
f(isset($_POST['valider'])){
// recuperation de ta liste déroulante
}
0