mougeole boiteux

  • Nombre de sujets
    7
  • Nombre de messages
    20
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

mougeole boiteux
le 22/05/2006 à 12:59
[liste déroulante] Récupération et manipulation de variable
Merci pour ta réponse

OUi moi aussi je préfère la première solution.

On peux surement faire des truc pas mal avec du JS mais c'est un langage qui me parle pas...

Bref...

En fait ce que je fais c'est une page de mise à jour :

Le visiteur va séléctionner une cellule dans la liste. Il appuie sur un bouton et on récupère dans la variable $_POST le nom de la cellule, le code de la cellule et le service.

Ensuite il modifie si il veut et il appuie sur un autre bouton pour appliquer les modifications dans la base.

J'ai pas mis le code pour tout ce qui était Nom Cellule puisque c'est des info que je récupère dans des textfield ET CA MARCHE

Il y a juste le service dans dépend la cellule que je doit récupérer dasn la deuxième liste déroulante. Et ça marche pas.

Tout le problème est là
mougeole boiteux
le 22/05/2006 à 12:41
[liste déroulante] Récupération et manipulation de variable
Bonjour

Voici mon problème

J'ai deux liste déroulante alimenté par une BDD.

La première contient des nom de cellule
La deuxième contient des nom de service

Je voudrai que lorsqu'on séléctionne une cellule et qu'on appuie sur le bouton du formulaire, la deuxième liste déroulante "séléctionne" le service correspondant à la cellule.

Voici mon code :

<form name="form" method="post" action="">
<table>
<tr>
<td>
<select name="listecellule">

// Ici j'ai séléctionné les champs qui m'intéressais ç amarche dans phpMyAdmin donc je ne remet pas la requête


<?php
while ($donneesb = mysql_fetch_array($reponseb))
{
?>

<option ><?php echo $donneesb['NomCellule']; ?></option>

<?php
}


// Requête SQL pour récupérer les valeurs des champs en fonction de la cellule séléctionné dans la première liste déroulante

$sqlc = "SELECT IdCellule, NomCellule, CodeCel, NomService FROM CELLULES INNER JOIN SERVICES ON RefService = IdServce WHERE NomCellule = '".$_POST['listecellule']."'; ";

$reponsec = mysql_query($sqlc);

$donneesc = mysql_fetch_array($reponsec);

?>

</select>
</td>
<td>
<input class="bouton" type="Submit" value="Mettre à jour" name="btnMajCell" tabindex="1">
</td>
<td> </td>
</tr>
</table>
</form>



<form method="post" action="">

<?php
while ($donnees = mysql_fetch_array($reponse) )
{
?>

<option value="'.$donneesc['IdService'].'" select="selected"><?php echo $donnees['NomService']; ?></option>

<?php
}
?>

</form>


On note que donnees['NomService'] correspond au service affiché dans la liste des services

$donneesc['IdService'] correspond à l'identifiant du service que l'on a récupérer avec la requête $sqlc

Voilà

Est-ce que quelqu'un pourrait m'aider?
Merci d'avance
mougeole boiteux
le 19/05/2006 à 09:49
PHP récupération de l'ID dans une liste déroulante
Salut

Sur PHP débutant , j'ai trouvé un petit bout de code sur le tableau associatif $_POST


<?php
if(isset($_POST))
{
foreach($_POST as $key=>$val)
{
echo $key.'=>'.$val.'<p>';
}
}
?>



J'ai rajouté ce bout de code dans ma page PHP et voilà le résultat

la première fois

listecellule=>cellule 2
btnMajCell=>Mettre à jour

la deuxième fois et les suivantes

listecellule=>2
btnMajCell=>Mettre à jour

Ca confirme bien les résultats observés...
mougeole boiteux
le 19/05/2006 à 09:07
PHP récupération de l'ID dans une liste déroulante
salut

merci pour ta réponse

J'ai vérifier toute mes pages j'avais bien une autre variable $id.

J'ai changé le nom de la variable $id en $idc (pour idcellule)

J'ai également réglé le problème du cache dans FF, j'ai même rajouté les header qui vont bien

<?php
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
?>

et rien n'y fait.


Alors je me demandais, quand je récupère $_POST['listecellule'], la première fois il récupère le Nom de la cellule et les fois qui suivent l'ID de la cellule.

Est-ce qu'il y aurait moyen de faire une éspèce de "double tableau associatif" du genre $_POST['listecellule']['IdCellule']

Je dis bien du genre parce que j'ai déjà essayé ça et ça marche pas.

Si quelqu'un a une idée ?

Merci d'avance
mougeole boiteux
le 18/05/2006 à 17:22
PHP récupération de l'ID dans une liste déroulante
Salut

Merci pour ta réponse

Bien sur que je connaissais les boucles while : j'en ai utilisé une pour faire ma liste.

Je fais une première requête $sqlb pour construire la liste

la requête $sqlc sert à récupérérer les valeurs qu'on a séléctionné dans la liste.

J'ai peut-être mal compris ton message, mais je ne vois pas pourquoi tu veux faire une deuxième boucle while.

Quand je faisait des echo je récupérait bien les valeurs que j'avais séléctionnées... mais pas la première fois que j'arrive sur la page.

Salut
mougeole boiteux
le 18/05/2006 à 15:35
PHP récupération de l'ID dans une liste déroulante
Bon

alors voilà ou j'en suis

Voici mon code :

<?php

while ($donneesb = mysql_fetch_array($reponseb))
{
?>

<?php echo '<option value="'.$donneesb'IdCellule'].'">
'.$donneesb['NomCellule']; ?>

</option>

<?php

}
?>



<?php 

$sqlc = "SELECT IdCellule, NomCellule, NomService FROM CELLULES INNER JOIN SERVICES ON RefService = IdServce WHERE IdCellule ='".$_POST['listecellule']."' ";
$reponsec = mysql_query($sqlc);

$donneesc = mysql_fetch_array($reponsec);
$nomcellule = $donneesc['NomCellule'];
$nomservice = $donneesc['NomService'];
$id = $donneesc['IdCellule'];

?>



Et voilà.

Quand je fais un echo de la requête, la première fois que je vais sur la page il m'écrit idcellule = 'cellule 2'

Et donc je ne peux pas récupérer le nom de la cellule.

En revanche au deuxième passage (et ceux qui suivent) sans rafraichir la page, il reconnait l'idcellule et il m'affiche dans la requête :

IdCellule = '2'

et je peux récupérer le nom de cellule et tout le reste

Donc ça marche ... mais pas la première fois!!

Est-ce que quelqu'un a déjà rencontré ce problème ou pourrait m'expliquer ce qui va pas dans mon code ?

Merci d'avance.
mougeole boiteux
le 18/05/2006 à 11:02
PHP récupération de l'ID dans une liste déroulante
Bonjour

J'ai un petit problème avec une liste déroulante.

Ma liste déroulante affiche des noms et je voudrais récupérer l'identifiant.

Voici mon code :


while ($donneesb = mysql_fetch_array($reponseb)) 
{
?>
<?php $nomservice1 = $donneesb['NomService'];

echo '<option value="'.$donneesb['IdCellule'].'">
'.$donneesb['NomCellule'].'(id='.$donneesb['IdCellule'].')'; ?>
</option>


<?php
}
?>


J'ai trouvé ce code dans un forum.
Inconvéniant de ce code :
- les id s'affiche avec les noms (alors que je ne veux afficher que les noms).

- On ne récupère pas l'identifiant.

Est-ce que quelqu'un sait comment récupérer l'identifiant dans une liste déroulante?

Merci d'avance
mougeole boiteux
le 17/05/2006 à 14:48
requête SQL
Ca y est j'ai trouvé!

En fait c'est beaucoup plus simple que ça :

On a des clé primaire et unique pour identifier les services et les cellules. Ca implique qu'il y a, par exemple, une seul cellule 2 appartenant au service 3.

Voici la requête :


SELECT NomCellule, NomService FROM CELLULES INNER JOIN SERVICES ON RefService = IdService WHERE IdCellule = 9;



Et ça me retourne une seul cellule (Ici c'est la cellule 1 du service 3)
J'ai mis 9 pour test dans phpmyadmin.

Dans mes pages PHP, je récupère l'IdCellule dans un champ caché du formulaire : $_POST['IdCellule'].

Voilà

Salut
mougeole boiteux
le 17/05/2006 à 09:48
requête SQL
PS : J'ai fait une petite erreur dans l'énoncé.

Dans la table CELLULES, il s'agit du champs RefService et non pas RefCellule.

D'ailleurs aucun intérêt de faire référence à une cellule dans une table contenant des cellules. smiley
mougeole boiteux
le 17/05/2006 à 09:08
requête SQL
Bonjour

J'ai un problème avec une requête SQL.

J'ai une table contenant des cellules et une table contenant des services

table CELLULES (IdCellule,NomCellule,RefCellule)

table SERVICES (IdService,NomService)

On note que RefService et une clé étrangère qui fait référence à la table SERVICES.

Je voudrai séléctionner le nom d'un service pour une cellule donnée

Voici ma requête:


SELECT NomService FROM CELLULES INNER JOIN SERVICES ON RefService = IdService WHERE NomCellule = Cellule 2;


Ce qui ne va pas dans cette requête c'est que si on a une cellule 2 dans le service 1 et une cellule 2 dans le service 2 (ce qui est possible) ma requête retoiurne 2 valeur. Or il m'enfaudrait une seule.


Est-ce que quelqu'un a une idée?

Merci d'avance.
LoadingChargement en cours