Se connecter avec
S'enregistrer | Connectez-vous

passage de données de formulaire par un lien hypertexte?

Dernière réponse : dans Programmation

Bonjour,

J'ai créé une page en php qui affiche une liste d'articles avec à côté une checkbox pour les supprimer de la base. Jusqu'ici j'envoyais le résultat des checkbox par un bouton submit, mais je voudrais pouvoir créer un lien en haut de colonne du style:
<a href=pagesuppression.php>supprimer</a>
qui enverrait les infos des checkbox en $_POST ou $_GET
J'étais parti sur la piste du javascript mais je m'embourbe :(  (je n'y avais jamais touché)

voici les bouts de code :

  1. $requete : "SELECT nomarticle, codearticle FROM article";
  2. $resultat=mysql_query(requete, $connexion);

  1. <table>
  2. <form action="pagesuppression.php" method="post">
  3. <?php
  4. while($ligne=mysql_fetch_array($resultat))
  5. {echo"<tr>
  6. <td>$ligne['nomarticle']</td>
  7. <td><input type='checkbox' name='codearticle[]' value=$ligne['codearticle]></td>
  8. </tr>"
  9. }
  10. </table>


Si quelqu'un a une idée... :) 
Lassé par la pub ? Créez un compte

Ah oui, mal lu. J'ai cru qu'il voulait utiliser obligatoirement les checkbox et passer par une url. :p 

Donc il faut que dans le lien, il y ait les infos nécessaires pour que ça efface la bonne article. Comme une ID d'article. Ce qui donnerait:

  1. <a href="pagesuppression.php?id=$iddelarticle">Supprimer</a>


Et il suffit d'y faire une requête:

DELETE FROM ta_table WHERE champ_id = $_GET['variable_d_url_pour_l_id']

Bien sûr, si tu fais comme ça, il faut bien faire attention que seul un admin/modo ou autre puisse accéder à cette page, sinon, n'importe qui pourrait effacer à l'aide de l'url!

Bonjour, merci pour les réponses, :) 
Je n'ai pas de problème de requête, ce qui me pose problème, c'est de récupérer le tableau correspondant aux cases cochées dans la page de suppression, sans que l'utilisateur se servent d'un bouton submit.

Comment faire pour qu'un haut de ma page, dans le lien :
  1. <a href=pagedesuppression.php?variables=$variable>supprimer</a>

la variable $variable contienne le tableau des valeurs des cases cochées dans le formulaire?

Bah...
Je suppose que dans ta base de données, tes articles ont une ID unique.
Disons que ta table possède id, titre et texte.
Tu fais comme tu as fait pour afficher ton titre/texte, sauf que cette fois, tu ajoutes l'id.

Bon, pas clair du tout. x)

Je ne dois pas avoir été très clair :
J'ai un formulaire, sous forme de tableau.
En haut du tableau il y a une ligne avec un titre par colonne. Une colonne "articles", et une colonne "à supprimer" avec une checkbox par article. Ces checkbox contiennent l'identifiant des articles, pas de problème. Je dois passer à la page de supression uniquement les identifiants des articles qui ont été cochés.
Si je traite mon formulaire avec un bouton submit, dans ma page de suppression, il me suffit de faire $codearticle=$_POST['codearticle'], pour que $codearticle soit un tableau contenant les valeurs passées par les checkbox.
Seulement, on m'a demandé de ne plus faire de bouton submit, mais un lien sur le titre de la colone "à supprimer". Comme ça les gens choisissent leurs articles et cliquent sur le titre de la colonne. Or il faudrait que lorsqu'ils cliquent sur le lien, il se passe un petit quelque chose qui récupère les valeurs des cases cochées et les passe à la page suivante. Si je ne fais qu'un lien simple, ni $_GET ni $_POST ne marchent.
J'espère que je suis plus clair... :??: 

Salut !
C'est vrai que c'est assez compliqué ton problème...je ne vois pas trop la différence entre un simple lien et un bouton <submit ...> au pire, change le style (Css) du <submit ...> de façons à faire "semblant" que c'est du texte (sans bordure, ni background). :) 

Mais autrement, le but des cases à cocher est d'être utilisé dans un formulaire, et qui dit formulaire dit submit...donc je ne pense pas que tu puisse utiliser une case à cocher en dehors d'un formulaire, mais bien sûr, je peut me tromper.

En fait je crois que la réponse de Nyny :hello:  était la bonne piste, je veux récupérer les infos du formulaires quand on clique sur le lien, pour que ce lien fasse le boulot du bouton submit. J'étais donc parti sur le onClick, mais je n'arrive pas à écrire le javascript qui peut mettre les infos dans une variable php...

Merci djsmileyus :)  J'étais tellement bloqué sur mon problème que je n'ai ps pensé à changer la tête du submit pour le mettre en haut de colonne, mais c'est la solution la plus simple, je m'en vais le faire... :)  :) 

Un peux tard ^^, mais pour ceux que cela intéresseraient encore :
pour envoyer les donnée d'un formulaire, avec checkbox, via un hyperlien voilà ma méthode :

formulaire html :
  1. <form name="formName" action="x.php?" method="post">
  2. <input type="checkbox" name="checkBoxChoix[]" value="1'"/>
  3. <input type="checkbox" name="checkBoxChoix[]" value="1'"/>
  4. <input type="checkbox" name="checkBoxChoix[]" value="1'"/>
  5. </form>


lien :
  1. <a href="#" onClick=formName.submit()>Envoy formulaire</a>


traitement formulaire sur la page x.php

  1. if (isset($_POST['checkBoxChoix'])){
  2. foreach ($_POST['checkBoxChoix'] as $choix)
  3. echo $choix ;}


voilà j'espère que cela pourra aider :hello: 
Lassé par la pub ? Créez un compte