A voir également:
- Afficher le contenu d'1 tableSQL ds un bouton
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Word a trouvé du contenu illisible - Guide
- Afficher mot de passe wifi android - Guide
- Réinitialiser chromecast sans bouton - Guide
3 réponses
Utilisateur anonyme
Modifié par neoprog67 le 30/08/2011 à 16:17
Modifié par neoprog67 le 30/08/2011 à 16:17
Bonjour,
En faisant comme ceci :
Zébulon
En faisant comme ceci :
$r =$bdd->prepare('SELECT categorie FROM categories') or die(print_r($bdd->errorInfo())); $r->execute(array()); echo '<select name="categorie" size=1>'; while ($donne = $r->fetch()) { echo '<option value="'.$donne['categorie'].'">'.$donne['categorie']; } echo '</select>';
Zébulon
Utilisateur anonyme
31 août 2011 à 15:39
31 août 2011 à 15:39
Scincèrement, je ne comprends pas du tout votre code, désolé.
A quoi servent ces variables ?
$scores = "resultats";
$requetes = "requetes";
$visiteurs = "visiteurs";
$categories = "categories";
$maj = "miseAJour";
$clubs = "clubs";
$categories = "categories";
$clubsCopie = "clubsBak";
Pourquoi initialisez-vous $_POST avec ceci :$_POST['choix_action']=$bdd->exec('INSERT INTO ...
A quoi sert cet hidden <input type="hidden" value="ajouter" name="choix_action"/>
Votre code fait systématiquement un insert, puisqu'il passe systématiquement sur cette partie :
$_POST['choix_action']=$bdd->exec('INSERT INTO resultats(categorie,local,scoreLocal,visiteur,scoreVisiteur,date,formeMatch,indexCategorie) VALUES (\'$_POST[envoi_categorie]\',\'$_POST[envoi_local]\',\'$_POST[envoi_scoreLocal]\',\'$_POST[envoi_visiteur]\',\'$_POST[envoi_scoreVisiteur]\',\'$_POST[envoi_date]\',\'$_POST[envoi_formeMatch]\',\'$_POST[envoi_indexCategorie]\')');
Si vous voulez un comportement à façon il va falloir tester sur quel bouton vous avez cliqué.
Là vous avez deux boutons submit, si vous cliquez sur l'un des deux, comment pouvez vous le savoir ?
Il faudrait faire deux boutons ajout et suppr, pas des submit, un hidden choix_action.
Sur les boutons mettre un évènement qui en Javascript met à jour la valeur de choix_action avec 'suppr' ou 'ajout' et qui ensuite poste le formulaire.
Ensuite à l'emplacement du insert faire un test sur la valeur de $_POST['choix_action'], si $_POST['choix_action']=='ajout' faire un insert sinon faire un delete
A quoi servent ces variables ?
$scores = "resultats";
$requetes = "requetes";
$visiteurs = "visiteurs";
$categories = "categories";
$maj = "miseAJour";
$clubs = "clubs";
$categories = "categories";
$clubsCopie = "clubsBak";
Pourquoi initialisez-vous $_POST avec ceci :$_POST['choix_action']=$bdd->exec('INSERT INTO ...
A quoi sert cet hidden <input type="hidden" value="ajouter" name="choix_action"/>
Votre code fait systématiquement un insert, puisqu'il passe systématiquement sur cette partie :
$_POST['choix_action']=$bdd->exec('INSERT INTO resultats(categorie,local,scoreLocal,visiteur,scoreVisiteur,date,formeMatch,indexCategorie) VALUES (\'$_POST[envoi_categorie]\',\'$_POST[envoi_local]\',\'$_POST[envoi_scoreLocal]\',\'$_POST[envoi_visiteur]\',\'$_POST[envoi_scoreVisiteur]\',\'$_POST[envoi_date]\',\'$_POST[envoi_formeMatch]\',\'$_POST[envoi_indexCategorie]\')');
Si vous voulez un comportement à façon il va falloir tester sur quel bouton vous avez cliqué.
Là vous avez deux boutons submit, si vous cliquez sur l'un des deux, comment pouvez vous le savoir ?
Il faudrait faire deux boutons ajout et suppr, pas des submit, un hidden choix_action.
Sur les boutons mettre un évènement qui en Javascript met à jour la valeur de choix_action avec 'suppr' ou 'ajout' et qui ensuite poste le formulaire.
Ensuite à l'emplacement du insert faire un test sur la valeur de $_POST['choix_action'], si $_POST['choix_action']=='ajout' faire un insert sinon faire un delete
- alors, les variables en haut ne servent plus à rien, cela faisait parti de mon ancien code, voilà c'est supprimé.
- mes boutons sont restés en hidden et appelés choix_action car précédement j'avais essayé ça :
if(isset($_POST['choix_action'])){
$choix=$_POST['choix_action'];
}
else
{
if(isset($_POST['ajout'])){
$choix='ajouter';}
if(isset($_POST['suppr'])){
$choix='supprimer';}
}
switch($choix)
{
case 'ajouter':
$bdd->exec('INSERT INTO resultats(categorie,local,scoreLocal,visiteur,scoreVisiteur,date,formeMatch,indexCategorie) VALUES(\'$_POST[envoi_categorie]\',\'$_POST[envoi_local]\',\'$_POST[envoi_scoreLocal]\',\'$_POST[envoi_visiteur]\',\'$_POST[envoi_scoreVisiteur]\',\'$_POST[envoi_date]\',\'$_POST[envoi_formeMatch]\',\'$_POST[envoi_indexCategorie]\')');
echo 'le résultat à bien été ajouté';
break;
case 'supprimer':
$bdd->exec("DELETE FROM resultats
WHERE categorie = '$_POST[envoi_categorie]'", $connexion);
echo 'le résultat à bien été supprimé';
break;
}
- mes boutons sont restés en hidden et appelés choix_action car précédement j'avais essayé ça :
if(isset($_POST['choix_action'])){
$choix=$_POST['choix_action'];
}
else
{
if(isset($_POST['ajout'])){
$choix='ajouter';}
if(isset($_POST['suppr'])){
$choix='supprimer';}
}
switch($choix)
{
case 'ajouter':
$bdd->exec('INSERT INTO resultats(categorie,local,scoreLocal,visiteur,scoreVisiteur,date,formeMatch,indexCategorie) VALUES(\'$_POST[envoi_categorie]\',\'$_POST[envoi_local]\',\'$_POST[envoi_scoreLocal]\',\'$_POST[envoi_visiteur]\',\'$_POST[envoi_scoreVisiteur]\',\'$_POST[envoi_date]\',\'$_POST[envoi_formeMatch]\',\'$_POST[envoi_indexCategorie]\')');
echo 'le résultat à bien été ajouté';
break;
case 'supprimer':
$bdd->exec("DELETE FROM resultats
WHERE categorie = '$_POST[envoi_categorie]'", $connexion);
echo 'le résultat à bien été supprimé';
break;
}
Oui globalement c'est l'idée en effet, le hidden choix_action dit ce qu'il faut faire, encore faut-il qu'il n'y aie qu'un seul <hidden name='choix_action"> et que votre code HTML Javascript mette sa valeur à ajouter ou supprimer en fonction du <input type="button" name="ajouter">
ou
<input type="button" name="supprimer">
sur lequel vous cliquez
ou
<input type="button" name="supprimer">
sur lequel vous cliquez
Vous n'avez qu'un seul <hidden name='choix_action" id="choix_action">
et deux boutons
<input type="text" name="ajouter" value="ajouter">
<input type="text" name="supprimer" value="supprimer">
Sur ces deux boutons vous ajoutez un évènement onClick, dans cet évènement vous récupérez l'objet ayant pour id="choix_action" et vous lui assignez la valeur désirée soit, ajouter, soit supprimer, ce qui donne pour le bouton ajouter
<input type="text" name="ajouter" value="ajouter" onclick="document.getElementById('choix_action').value='ajouter';'">
ainsi le champ hidden prend la valeur 'ajouter' lorsque que vous cliquez sur le bouton ajouter
Ensuite il faut soumettre votre formulaire (méthode submit()) donc il faut que votre formulaire possède un nom, vous ajoutez donc un attribut name='formulaire' par exemple à votre balise form <form name='formulaire'....
Dans l'évènement onClick du bouton ajouter vous complètez avec l'instruction suivante document.formulaire.submit(); pour envoyer le formulaire ce qui donne :
<input type="text" name="ajouter" value="ajouter" onclick="document.getElementById('choix_action').value='ajouter';document.formulaire.submit();'">
Reste à faire la même chose pour le bouton supprimer :
<input type="text" name="supprimer" value="supprimer" onclick="document.getElementById('choix_action').value='supprimer';document.formulaire.submit();'">
et deux boutons
<input type="text" name="ajouter" value="ajouter">
<input type="text" name="supprimer" value="supprimer">
Sur ces deux boutons vous ajoutez un évènement onClick, dans cet évènement vous récupérez l'objet ayant pour id="choix_action" et vous lui assignez la valeur désirée soit, ajouter, soit supprimer, ce qui donne pour le bouton ajouter
<input type="text" name="ajouter" value="ajouter" onclick="document.getElementById('choix_action').value='ajouter';'">
ainsi le champ hidden prend la valeur 'ajouter' lorsque que vous cliquez sur le bouton ajouter
Ensuite il faut soumettre votre formulaire (méthode submit()) donc il faut que votre formulaire possède un nom, vous ajoutez donc un attribut name='formulaire' par exemple à votre balise form <form name='formulaire'....
Dans l'évènement onClick du bouton ajouter vous complètez avec l'instruction suivante document.formulaire.submit(); pour envoyer le formulaire ce qui donne :
<input type="text" name="ajouter" value="ajouter" onclick="document.getElementById('choix_action').value='ajouter';document.formulaire.submit();'">
Reste à faire la même chose pour le bouton supprimer :
<input type="text" name="supprimer" value="supprimer" onclick="document.getElementById('choix_action').value='supprimer';document.formulaire.submit();'">
30 août 2011 à 16:25
ça marche, mais petit soucis ça créer le même bouton que le mien mais en haut à gauche de ma page et pas dans celui que j'avais placé dans ma page qui lui reste vide.
merci bcp pour cette réponse rapide et efficace .
keny
30 août 2011 à 16:37
kevin
30 août 2011 à 16:42
30 août 2011 à 19:15
j'ai donc mes boutons comme celui des commentaires (qui marche, merci Neoprog67 )
ainsi qu' un bouton "valider" qui devrai envoyer les données sélectionnées dans une nouvelle table resultats:
$bdd->exec('INSERT INTO resultats(categorie,local,scoreLocal,visiteur,scoreVisiteur,date,formeMatch,indexCategorie) VALUES (\'$_POST[envoi_categorie]\',\'$_POST[envoi_local]\',\'$_POST[envoi_scoreLocal]\',\'$_POST[envoi_visiteur]\',\'$_POST[envoi_scoreVisiteur]\',\'$_POST[envoi_date]\',\'$_POST[envoi_formeMatch]\',\'$_POST[envoi_indexCategorie]\')');
echo 'le résultat à bien été ajouté';
et un bouton "supprimer" qui supprime la ligne de resultat choisie de la table resultat :
$bdd->exec("DELETE * FROM resultats
WHERE categorie = '$_POST[envoi_categorie]'");
echo 'le résultat à bien été supprimé';
MAIS VOILA, je pense que mes codes sont bon (ou pas, lol) mais je n'arrive pas à les raccorder à mes 2 boutons "valider" et "supprimer" !!
31 août 2011 à 07:25
Si je comprends bien vous avez un formulaire et deux boutons, valider et supprimer, c'est bien ça ?
Dans ce cas vous pouvez faire ainsi, ajouter un <hidden name='todo'>dans votre formulaire, lorsque vous cliquez sur le bouton ajouter vous mettez en JS le hidden à ajouter et vous soumettez le formulaire, pour supprimer vous mettez le hidden à supprimer et vous soumettez le formulaire et dans votre PHP vous testez la valeur de $_POST['todo'] pour savoir quell action exécuter, delete ou insert