Php problème de menu déroulant(encore une foi
tata82
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Fallentree Messages postés 2309 Date d'inscription Statut Membre Dernière intervention -
Fallentree Messages postés 2309 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je poste pour la première fois sur ce site ou d'habitude je trouve mes réponses souvent ormi la , impossible de savoir d'où viens l'erreure.
J'aimerais créer un menu déroulant qui afficherais les cartes de mes serveurs en fonction des serveurs,
le premier menu étant la sélection d'un serveur, je suis débutant en php ( 2 semaine que je m'y penche dessus , et j'ai essayez de monter mon programme comme sa, or il m'est impossible d'afficher ma deuxième liste :'( pouvez vous m'aidez?
voici mon code:
le fichier est en 4 parties :
l'index:
<html>
<table id='formulaire'>
<tr id='select_serveur'>
<td class='title'><b>Selectionnez un serveur :</b></td><td><?php include('select_serveur.php')?></td>
</tr>
<tr id='select_carte'>
</tr>
</table>
</html>
le fichier select_serveur:
<select id='select_serveur' name='select_serveur' onchange="ajax(this)">
<option value='serveur_select'>Choisir un Serveur</option>
<?php
mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("tutu") or die("Impossible de se connecter à la base de données : " . mysql_error());
$query ="Select DISTINCT NOM_SERVEUR from SERVEUR ORDER BY NOM_SERVEUR";
$rq = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
{
$serveur = $row["NOM_SERVEUR"];
//$serveur_select = $row["WWNAME"];
echo "<option value='$serveur'>$serveur</option>";
}
mysql_close();
?>
</select>
le fichier select_carte :
<select id='select_carte' name='select_carte'>
<option value='slect_carte'>Choisir une carte</option>
<?php
mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("tutu") or die("Impossible de se connecter à la base de données : " . mysql_error());
$var=$_POST['serveur_select'];
echo($var);
$query = "SELECT CARTE_SERVEUR FROM SERVEUR WHERE WWNAME='$var'";
$rq = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
{
$carte = $row["CARTE_SERVEUR"];
echo "<option value='$carte'>$carte</option>";
}
mysql_close();
?>
</select>
et le fichier ajax.js:
function ajax(strthis)
{
var param = strthis;//Je récupère un ID d'habitude et non une string. Si ça ne fonctionne pas, enlève le .value
var selected_serveur = document.getElementById("select_serveur").options[document.getElementById("select_serveur").selectedIndex].value;
$.ajax
(
{
type: "POST",
url: "select_carte.php",
data: "var="+param,
success:
function(msg)
{
$("#select_carte").append("<td class='title'><b>Selectionnez un port :</b></td><td>"+ msg +"</td>");
}
}
if(selected_serveur=="void_carte") $("#select_carte").hide();//Si l'utilisateur n'a pas encore fait de choix dans le "select_affaire" alors "select_localisation" est caché.
else $("#select_carte").show();//Sinon on l'affiche.
);
}
voila je n'y arrive vraiment pas pouvez vous m'aider? :'( :'(
Je poste pour la première fois sur ce site ou d'habitude je trouve mes réponses souvent ormi la , impossible de savoir d'où viens l'erreure.
J'aimerais créer un menu déroulant qui afficherais les cartes de mes serveurs en fonction des serveurs,
le premier menu étant la sélection d'un serveur, je suis débutant en php ( 2 semaine que je m'y penche dessus , et j'ai essayez de monter mon programme comme sa, or il m'est impossible d'afficher ma deuxième liste :'( pouvez vous m'aidez?
voici mon code:
le fichier est en 4 parties :
l'index:
<html>
<table id='formulaire'>
<tr id='select_serveur'>
<td class='title'><b>Selectionnez un serveur :</b></td><td><?php include('select_serveur.php')?></td>
</tr>
<tr id='select_carte'>
</tr>
</table>
</html>
le fichier select_serveur:
<select id='select_serveur' name='select_serveur' onchange="ajax(this)">
<option value='serveur_select'>Choisir un Serveur</option>
<?php
mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("tutu") or die("Impossible de se connecter à la base de données : " . mysql_error());
$query ="Select DISTINCT NOM_SERVEUR from SERVEUR ORDER BY NOM_SERVEUR";
$rq = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
{
$serveur = $row["NOM_SERVEUR"];
//$serveur_select = $row["WWNAME"];
echo "<option value='$serveur'>$serveur</option>";
}
mysql_close();
?>
</select>
le fichier select_carte :
<select id='select_carte' name='select_carte'>
<option value='slect_carte'>Choisir une carte</option>
<?php
mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("tutu") or die("Impossible de se connecter à la base de données : " . mysql_error());
$var=$_POST['serveur_select'];
echo($var);
$query = "SELECT CARTE_SERVEUR FROM SERVEUR WHERE WWNAME='$var'";
$rq = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
{
$carte = $row["CARTE_SERVEUR"];
echo "<option value='$carte'>$carte</option>";
}
mysql_close();
?>
</select>
et le fichier ajax.js:
function ajax(strthis)
{
var param = strthis;//Je récupère un ID d'habitude et non une string. Si ça ne fonctionne pas, enlève le .value
var selected_serveur = document.getElementById("select_serveur").options[document.getElementById("select_serveur").selectedIndex].value;
$.ajax
(
{
type: "POST",
url: "select_carte.php",
data: "var="+param,
success:
function(msg)
{
$("#select_carte").append("<td class='title'><b>Selectionnez un port :</b></td><td>"+ msg +"</td>");
}
}
if(selected_serveur=="void_carte") $("#select_carte").hide();//Si l'utilisateur n'a pas encore fait de choix dans le "select_affaire" alors "select_localisation" est caché.
else $("#select_carte").show();//Sinon on l'affiche.
);
}
voila je n'y arrive vraiment pas pouvez vous m'aider? :'( :'(
A voir également:
- Php problème de menu déroulant(encore une foi
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Supprimer menu déroulant excel - Forum Excel
- Easy php - Télécharger - Divers Web & Internet
4 réponses
document.getElementById("select_serveur").selectedIndex
T es sur que c a fonctionne comme this en script ...
T es sur que c a fonctionne comme this en script ...
et bien justement cette partie est celle qui me pose le plus de problème j'aimerais savoir la syntaxe car mes différente recherche mon ammener a cette phrase.. :/
oui je n'avais pas vus le vrais code est :
<html>
<table id='formulaire'>
<tr id='select_serveur'>
<td class='title'><b>Selectionnez un serveur :</b></td><td><?php include('select_serveur.php')?></td>
<td class='title'><b>Selectionnez un port :</b></td><td><?php include('select_carte.php')?></td>
</tr>
<tr id='select_carte'>
</tr>
</table>
</html>
pour ce que tu m'a dit je n'arrive pas a l'appliquer (suis je si nul? :/ )
<html>
<table id='formulaire'>
<tr id='select_serveur'>
<td class='title'><b>Selectionnez un serveur :</b></td><td><?php include('select_serveur.php')?></td>
<td class='title'><b>Selectionnez un port :</b></td><td><?php include('select_carte.php')?></td>
</tr>
<tr id='select_carte'>
</tr>
</table>
</html>
pour ce que tu m'a dit je n'arrive pas a l'appliquer (suis je si nul? :/ )
Bonjour,
tu mélanges du jquery et du javascript classique.
Et à priori, tu n'as pas les sources jquery dans ton projet.
tu mélanges du jquery et du javascript classique.
Et à priori, tu n'as pas les sources jquery dans ton projet.
Dans ton fichier ajax.js
Il y a du code qui correspond à du jquery, je suppose que tu as récupéré les sources et tu essayes de l'adapter à ton code
mais çà ne risque pas de marcher, puisque tu n'as pas les sources jquery dans ton projet
sinon, il y a des grosses lacunes à tout point de vue
HTML, il manque quasiment toute les balises requises.
Javascript sans pratique, c'est vraiment pas évident.
BDD, je pense que ta base de donné"es n'est pas correcte
serveur et carte devrait être dans 2 tables différentes
Il y a du code qui correspond à du jquery, je suppose que tu as récupéré les sources et tu essayes de l'adapter à ton code
mais çà ne risque pas de marcher, puisque tu n'as pas les sources jquery dans ton projet
sinon, il y a des grosses lacunes à tout point de vue
HTML, il manque quasiment toute les balises requises.
Javascript sans pratique, c'est vraiment pas évident.
BDD, je pense que ta base de donné"es n'est pas correcte
serveur et carte devrait être dans 2 tables différentes
j'ai changer mon type de programme pour un qui n'utilise pas javascript : le problème est que je ne récupère pas mon deuxième paramètre par ma methode $_POST :/
ma fonction qui génère mon graphe est bonne mais pas mon envoie pouvez vous m'aidez?
mon code :
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "tutu";
/* On récupère si elle existe la valeur du serveur envoyée par le formulaire */
$idr = isset($_POST['serveur'])?$_POST['serveur']:null;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un serveur et une carte </title>
<meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
</head>
<h3>SELECTIONNEZ UN SERVEUR</h3>
<?php
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$query ="Select DISTINCT NOM_SERVEUR from SERVEUR ORDER BY NOM_SERVEUR";
$rech_serveur = mysql_query($query);
$serveur = array();
$nb_serveur = 0;
if($rech_serveur != false)
{
while($ligne = mysql_fetch_assoc($rech_serveur))
{
array_push($serveur, $ligne['NOM_SERVEUR']);
/* On incrémente de compteur */
$nb_serveur++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="ch_carte_serveur">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez un serveur</legend>
<select name="serveur" id="serveur" onchange="document.forms['ch_carte_serveur'].submit();">
<option value="-1">- - - Choisissez un serveur - - -</option>
<?php
for($i = 0; $i < $nb_serveur; $i++)
{
?>
<option value="<?php echo($serveur[$i]); ?>"<?php echo((isset($idr) && $idr == $serveur[$i])?" selected=\"selected\"":null); ?>><?php echo($serveur[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_serveur);
/* On commence par vérifier si on a envoyé un numéro de serveur et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
$sql2 = "SELECT 'CARTE_SERVEUR' FROM 'SERVEUR' WHERE 'NOM_SERVEUR' = '".$idr."' ORDER BY 'CARTE_SERVEUR'";
if($connexion != false)
{
$rech_carte_serveur = mysql_query($sql2, $connexion);
/* Un petit compteur pour les cartes */
$nb_carte_serveur = 0;
/* On crée deux tableaux pour les noms les cartes */
$nom_carte_serveur = array();
/* On va mettre le nom des cartes un tableau */
while($ligne_carte_serveur = mysql_fetch_assoc($rech_carte_serveur))
{
array_push($nom_carte_serveur, $ligne_carte_serveur['CARTE_SERVEUR']);
$nb_carte_serveur++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<legend>Sélectionnez une carte </legend>
<select name="carte_serveur" id="carte_serveur">
<option value="-1">- - - Choisissez une carte - - -</option>
<?php
for($d = 0; $d<$nb_carte_serveur; $d++)
{
?>
<option value="<?php echo($nom_carte_serveur[$d]); ?>"<?php echo((isset($nom_carte_serveur) && $nom_carte_serveur == $nom_carte_serveur[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_carte_serveur[$d].""); ?></option>
<?php
}
?>
</select>
<?php
}
mysql_free_result($rech_carte_serveur);
}
?>
<br /><input type="submit" name="ok" id="ok" value="Visualiser connection"/>
</fieldset>
</form>
<?phpa
mysql_close($connexion);
}
else
{
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
<?php
if(isset($_POST["ok"]) && isset($_POST["carte_serveur"]) && $_POST["serveur"] != "")
{
$Port_selectionnee = $_POST["carte_serveur"];
$serveur_selectionnee = $_POST["serveur"];
include("graphe.php");
?>
<p>Vous avez sélectionné le serveur <?php echo($serveur_selectionnee); ?> avec la carte <?php echo($Port_selectionnee); ?></p>
<?php
}
?>
</body>
</html>
Voila mon soucis que je ne comprend pas c'est que sur cette page je récupère bien les valeur mais sur graphe.php il ne varie pas selon la variable carte_serveur alors que elle varie selon serveur :/
j'ai un autre fichier test qui lui est simple et qui fais fonctionnez ma page graphe.php avec ce code la :
<html><body>
<p>
Selectionnez un serveur avec un port:</p>
<form method="post" action="graphe.php">
Serveur : <input type="text" name="serveur" size="15"><br>
Port : <input type="text" name="carte_serveur" size="15" value="0"><br>
<input type="submit" value="OK">
</form></body></html>
donc voila merci par avance de vos reponses!!
cordialement
ma fonction qui génère mon graphe est bonne mais pas mon envoie pouvez vous m'aidez?
mon code :
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "tutu";
/* On récupère si elle existe la valeur du serveur envoyée par le formulaire */
$idr = isset($_POST['serveur'])?$_POST['serveur']:null;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un serveur et une carte </title>
<meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
</head>
<h3>SELECTIONNEZ UN SERVEUR</h3>
<?php
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$query ="Select DISTINCT NOM_SERVEUR from SERVEUR ORDER BY NOM_SERVEUR";
$rech_serveur = mysql_query($query);
$serveur = array();
$nb_serveur = 0;
if($rech_serveur != false)
{
while($ligne = mysql_fetch_assoc($rech_serveur))
{
array_push($serveur, $ligne['NOM_SERVEUR']);
/* On incrémente de compteur */
$nb_serveur++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="ch_carte_serveur">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez un serveur</legend>
<select name="serveur" id="serveur" onchange="document.forms['ch_carte_serveur'].submit();">
<option value="-1">- - - Choisissez un serveur - - -</option>
<?php
for($i = 0; $i < $nb_serveur; $i++)
{
?>
<option value="<?php echo($serveur[$i]); ?>"<?php echo((isset($idr) && $idr == $serveur[$i])?" selected=\"selected\"":null); ?>><?php echo($serveur[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_serveur);
/* On commence par vérifier si on a envoyé un numéro de serveur et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
$sql2 = "SELECT 'CARTE_SERVEUR' FROM 'SERVEUR' WHERE 'NOM_SERVEUR' = '".$idr."' ORDER BY 'CARTE_SERVEUR'";
if($connexion != false)
{
$rech_carte_serveur = mysql_query($sql2, $connexion);
/* Un petit compteur pour les cartes */
$nb_carte_serveur = 0;
/* On crée deux tableaux pour les noms les cartes */
$nom_carte_serveur = array();
/* On va mettre le nom des cartes un tableau */
while($ligne_carte_serveur = mysql_fetch_assoc($rech_carte_serveur))
{
array_push($nom_carte_serveur, $ligne_carte_serveur['CARTE_SERVEUR']);
$nb_carte_serveur++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<legend>Sélectionnez une carte </legend>
<select name="carte_serveur" id="carte_serveur">
<option value="-1">- - - Choisissez une carte - - -</option>
<?php
for($d = 0; $d<$nb_carte_serveur; $d++)
{
?>
<option value="<?php echo($nom_carte_serveur[$d]); ?>"<?php echo((isset($nom_carte_serveur) && $nom_carte_serveur == $nom_carte_serveur[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_carte_serveur[$d].""); ?></option>
<?php
}
?>
</select>
<?php
}
mysql_free_result($rech_carte_serveur);
}
?>
<br /><input type="submit" name="ok" id="ok" value="Visualiser connection"/>
</fieldset>
</form>
<?phpa
mysql_close($connexion);
}
else
{
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
<?php
if(isset($_POST["ok"]) && isset($_POST["carte_serveur"]) && $_POST["serveur"] != "")
{
$Port_selectionnee = $_POST["carte_serveur"];
$serveur_selectionnee = $_POST["serveur"];
include("graphe.php");
?>
<p>Vous avez sélectionné le serveur <?php echo($serveur_selectionnee); ?> avec la carte <?php echo($Port_selectionnee); ?></p>
<?php
}
?>
</body>
</html>
Voila mon soucis que je ne comprend pas c'est que sur cette page je récupère bien les valeur mais sur graphe.php il ne varie pas selon la variable carte_serveur alors que elle varie selon serveur :/
j'ai un autre fichier test qui lui est simple et qui fais fonctionnez ma page graphe.php avec ce code la :
<html><body>
<p>
Selectionnez un serveur avec un port:</p>
<form method="post" action="graphe.php">
Serveur : <input type="text" name="serveur" size="15"><br>
Port : <input type="text" name="carte_serveur" size="15" value="0"><br>
<input type="submit" value="OK">
</form></body></html>
donc voila merci par avance de vos reponses!!
cordialement
Sans ton fichier graph.php ca va etre dur de comprendre pourquoi les vaiable $_Post sont tronquées sans doute a cause de la requete faite au prealable ...
Cad que tu cherches associées des cartes a des serveurs puis des ports, sans savoir si les sont presentes physiquement ... (l analyse minimale)
Meme si cela n est pas desire, en effet des statstique sur des cartes pourquoi pas...
Bref... sans code c est dur ...
Cad que tu cherches associées des cartes a des serveurs puis des ports, sans savoir si les sont presentes physiquement ... (l analyse minimale)
Meme si cela n est pas desire, en effet des statstique sur des cartes pourquoi pas...
Bref... sans code c est dur ...