Se connecter / S'enregistrer
Votre question

recuperation de valeur

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
20 Septembre 2007 19:23:25


bonsoir je demande de l'aide .quand je click sur "supprimer" dans code 1 preallablement j'ai deja fais une ou des selections dans mon
'checkbox' name =choix. mon probleme est le suivant : j ai comme erreur $choix non identifier dans le code 2 or $choix evrais avoir une valeur .
d'avance merçi


code 1:

<script>
function sup_agence() {
//if (liste_agence.codeagence.checked){
//alert("Une agence a été supprimée");
document.liste_agence.method="post";
document.liste_agence.action="supp_agence.php";
document.liste_agence.submit();
//}
}
</script>
<body>
<?php
echo'
<form name="liste_agence">';

function connexion( $hote, $login,$mdp, $bd) {
/* connexion au serveur MySQL */
$connex = mysql_connect($hote, $login, $mdp);
if (! $connex)
echo "Connexion impossible au serveur Mysql à $hote";

/* connexion à la base */
else {
$ok = mysql_select_db($bd, $connex);
if (! $ok)
echo "Connexion impossible à la base $bd";
else
return $connex;
}
}


function extraire($connexion ,$requete) {
/* requete de sélection */
$resultat = mysql_query($requete, $connexion);
if ($resultat)
return $resultat;
else {
echo "Erreur dans la requête \"$requete\" ";
echo "Message de MySql :". mysql-errno($connexion) . mysql-error($connexion);
}
}

function afficher($resultat) {
/* quelle est la dimension du résultat ? */
$nblignes=mysql_num_rows($resultat);
$nbchamps=mysql_num_fields($resultat);

/* affichage de l'en-tete du tableau HTML avec les noms des champs */
echo "<table border=1 align=center><tr>";
echo'<th>Choix</th>';

for($i=0; $i < $nbchamps; $i++) {
$tabchamps[$i] = mysql_field_name($resultat,$i);
echo "<th>$tabchamps[$i]</th>";

}
echo "</tr>";

/* affichage des enregistrements du résultat */
for($i=0; $i < $nblignes; $i++) {
$ligne = mysql_fetch_row($resultat);
echo "<tr>";
echo "<td><input type='checkbox' name='choix' value='$ligne[1]'></td>";
//echo"$ligne[1]";

for($j=0; $j < $nbchamps; $j++) {
echo "<td>$ligne[0]</td>";
echo"<td><A HREF='agence.php' TARGET='corps'>$ligne[1]</A></td>";

echo "<td>$ligne[2]</td>";
}

echo "</tr>";
}
echo "</table>";
}

echo'<div style="text-align: center"><b><u><font size="+1">Liste des différentes agences</font></u></b></div><br><br>
<div style="text-align: center"><table>
<tr>
<td> </td> <td><input type="button" value="Supprimer" onclick="sup_agence()"></td> <td> </td><td><A HREF="agence.php" TARGET="corps"><b>Ajouter une agence</b></A></td>
</tr>
</table></div><br>';
$serveur ="localhost";
$user="root";
$pwd="";
$bd="projet";
$connexion=connexion($serveur,$user,$pwd,$bd);
$requete="SELECT * FROM agence";
$resultat=extraire($connexion,$requete);
afficher($resultat);
echo'
<div style="text-align: center"><table>
<br> <br><td> </td> <td><input type="button" value="Supprimer" onclick="sup_agence()"></td> <td> </td><td><A HREF="agence.php" TARGET="corps"><b><div style="text-align: center">Ajouter une agence</div></b></A></td>
</table></div>
</form>
';
?>
</body>
</html>






code 2 fichier nommé:supp_agence.php


<?php /* Date de création: 15/09/2007 */ ?>
<html>

<body>
<?php
$serveur ="localhost";
$user="root";
$pwd="";
$bd="projet";
$table = "agence";
$choix=$_POST["choix"];
//
$connexion=mysql_connect($serveur, $user,$pwd) or die ("impossible d acceder au sgbd");
//$connectbd=mysql_select_db($bd,$connexion)or die (" impossible de se connecter a la base de donnée mysql");
$requete = "DELETE FROM $table WHERE CodeAgence = '$choix' ";
$resultat = mysql_db_query($bd,$requete,$connexion);
if ($resultat)
{echo" l'agence $choix a été supprimée"; }
?>
<p><A HREF="liste_agence.php" TARGET="corps"><b>Revenir à la liste</b></A>
</body>
</html>

Autres pages sur : recuperation valeur

20 Septembre 2007 22:02:22

tu peux poster le code source de la page qui est généré.
et l'erreur exacte par rapport à choix

et un conseil, indente ton code (html compris), ca sera plus lisible
20 Septembre 2007 22:49:33

normale tes checkbox ont le même noms alors il se perd.

Si tu veux vérifier ce que ton code reçois fait :
  1. Print_r($_POST);
  2. die();

juste après ta balise de début php dans ton code 2
Contenus similaires
24 Septembre 2007 09:51:12

ça marche. j'arrive a supprimer une seule case coché. maintenant comment supprime plusieurs cases coché? DANS QUEL code je dois faire mais boucle et comment
merçi d'avance
24 Septembre 2007 11:50:42

konvi a dit :
j'arrive a supprimer une seule case coché. maintenant comment supprime plusieurs cases coché?

tu répétes l'action autant de fois :D 
konvi a dit :

DANS QUEL code je dois faire mais boucle et comment
merçi d'avance

"dans quel code je dois faire" : quoi??
"mais boucle": boucler qui, qu'est ce qu'il a fait
"et comment": en appelant la police?
"merçi d'avance": de rien, (pas mal la cédille)

heureusement que le langage existe afin qu'on se comprenne :) 
24 Septembre 2007 14:50:47

le mieux pour moi serais de faire une boucle à ce niveau là :

  1. $requete = "DELETE FROM $table WHERE "
  2. for $i=1 to nb_agence
  3. $requete.=" CodeAgence = ".$_POST["choix".$i]." OR ";
  4.  
  5. $requete.=" CodeAgence=-1 ";


lol là c'est un truc fait à l'arrache mais si tu veux tu peux grandement l'améliorer.
24 Septembre 2007 15:13:29

ou alors renommer les cases à cocher avec des []:
  1. <input type='checkbox' name='choix[]' />

ce qui permettra de ne pas être obligé de connaitre le nombre de case par avance, surtout qu'une checkbox, si elle n'est pas cochée, n'est pas transmise en post ou get.

  1. if (isset ($_POST['choix'])
  2. {
  3. // requete etc...
  4. foreach ($_POST['choix'] as $choix)
  5. // condition ...
  6. }
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS