Recuperer un tableau par la methode POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recuperer un tableau par la methode POST

par Ryle » 13 juin 2007, 16:01

Les navigateurs n'envoient que les valeurs des options qui ont été sélectionnées dans le formulaire :) (il n'a aucune notion de transfert d'une liste vers une autre, pour lui ce sont deux listes totalement indépendante et aucune ne prévaudrait sur l'autre :))

Il te faut donc réaliser une simple fonction javascript qui lors de la validation du formulaire parcourera ton select en affectant "true" à la propriété selected de chaque option. Ainsi lorsque le formulaire sera envoyé, tu recevras bien le tableau $_POST['ID_MOTEURDERECHERCHE'] contenant toutes les valeurs des options sélectionnées :)

Recuperer un tableau par la methode POST

par risa83 » 13 juin 2007, 11:01

Bonjour à tous et à toutes,

Je souhaiterais recuperer un tableau suivant la methode POST.
Voici mon code :
<form method="POST" action="TRA_packOneShotSubmit.php" name="formCreation" id="formCreation">
<p> 
  <label for="ID_MOTEURDERECHERCHE">Moteur(s) de recherche</label>
</p>
<table border="0" cellpadding="0" cellspacing="0" class='choixMultiple'>
  <tr> 
    <td> Affect&eacute;(s)<br> <select name="ID_MOTEURDERECHERCHE[]" id="ID_MOTEURDERECHERCHE" size="10" multiple>
        <?
$sql = "select * from PACK_MOTEURDERECHERCHE
inner join MOTEURDERECHERCHE on MOTEURDERECHERCHE.ID_MOTEURDERECHERCHE=PACK_MOTEURDERECHERCHE.ID_MOTEURDERECHERCHE
where ID_PACK = 1 order by MOT_NOM";
$rs = mssql_query($sql) or die(erreurSQL($sql));
$notIn = "not in (-1"; 
while ($row = @mssql_fetch_array($rs)) {
$notIn .= ",'$row[ID_MOTEURDERECHERCHE]'"; ?>
        <option value="<?= $row['ID_MOTEURDERECHERCHE']?>"> 
        <?= $row['MOT_NOM']?>
        </option>
        <?
}
$notIn .= ")";?>
      </select></td>
    <td> <input type="button" name="Button" value="<<" onclick="DeplaceCritere(document.getElementById('ID_MOTEURDERECHERCHE_ALL'), document.getElementById('ID_MOTEURDERECHERCHE'));addMoteur();"> 
      <input type="button" name="Button2" value=">>" onclick="DeplaceCritere(document.getElementById('ID_MOTEURDERECHERCHE'), document.getElementById('ID_MOTEURDERECHERCHE_ALL'));ftest();"> 
    </td>
    <td> Disponible(s)<br> <select name="ID_MOTEURDERECHERCHE_ALL[]" id="ID_MOTEURDERECHERCHE_ALL" size="10" multiple>
        <?
$sql = "select * from MOTEURDERECHERCHE where ID_MOTEURDERECHERCHE $notIn and MOT_ARCHIVE=0 order by MOT_NOM"; 
$rs = mssql_query($sql) or die(erreurSQL($sql));
while ($row = @mssql_fetch_array($rs)) { ?>
        <option value="<?= $row['ID_MOTEURDERECHERCHE']?>"> 
        <?= $row['MOT_NOM']?>
        </option>
        <? } ?>
      </select></td>
  </tr>
</table>
</form>
Je veux que lorsque je clique sur le bouton (name=button) que ma methode post m'envoie ID_MOTEURDERECHERCHE (contenant les id des moteur deja présents puis le(s) nouveau(x) deplacé(s) par DeplaceCritere).
Pour cela j'utilise une fonction addMoteur qui m'envoie sur le fichier 'TRA_packOneShotSubmit.php' mais je n'arrive pas à le recupérer.

Ma méthode est-elle bonne?
Si oui comment récupérer ce tableau pour traiter les moteurs et les ajouter à ma BD??

Merci de votre aide :)