PHP - comment récuperer valeur radio

Bonjour,

je travaille sur un proxy auquelle je rajoute quelques fonctions, dont la compression d'image, et je cherche à rêgler le taux de compression de l'image, justement ...

dans ma template j'ai ce code :

 echo <<<OUT
   <form action="{$proxy}/includes/process.php?action=update" target="_top" method="post" onsubmit="return updateLocation(this);">

      <p>
         
         <b></b>
         <input type="text" name="u" size="40" value="{$url}" class="url-input" style="width:50%;" />
         <input type="submit" value="Go" class="btn_small" />
         [<a href="{$proxy}/index.php" target="_top">home</a>]
         [<a href="{$proxy}/includes/process.php?action=clear-cookies&return={$return}" target="_top">clear cookies</a>]
         
      </p>
      <p>
         <b></b>
OUT;


j'ai envie de rajouter deux bouton radio avec le taux de compression du genre :

<label> 90% : <INPUT TYPE="radio" NAME="compression_rate" VALUE="10"  <?php $_POST['rate_10']?>><label><label> 70% : <INPUT TYPE="radio" NAME="compression_rate" VALUE="30"  <?php $_POST['rate_30']?>><label>


mais je ne vois pas de quelle manière mon script peut donner la valeur 10 à $_SESSION['compression_rate']

auriez vous une idée ?

par avance, merci

5 réponses

  1. Bonjour,

    vos deux boutons "radio" sont dans un formulaire
    <form name= ... action=pgm.php method=POST>
    <input type=radio name=btRadio value=10>10<br>
    <input type=radio name=btRadio value=20>20<br>
    <input type=submit value='envoyer'>
    </form>

    En cliquant sur envoyer le script passe les variables dans un tableau nommé $_POST au programme ciblé par le paramètre action du formulaire.

    soit pour vérifier ce que l'on reçoit dans pgm.php (par exemple)
    <?php
    echo "<pre>";print_r($_POST);echo "</pre>";

    0
    1. Merci pour ta réponse JL

      mais justement mon soucis est que je souhaite que ce soit mon boutton "go" qui gère la mise à jour de l'url et qui actualiserait également le taux de compression.

      j'ai essayé de mettre les boutton radio dans le meme formulaire que la bare de l'url , mais sans succé, ce bouton ne change pas la valeur du taux. mon code html rajouté ressemble à ça :

      <label for="rate">90%</label><input type="radio" name="compression_rate" id="90" value="10" checked=""/><label for="rate">70%</label><input type="radio" name="compression_rate" id="70" value="30"/><label for="rate">50%</label><input type="radio" name="compression_rate" id="50" value="50"/>


      j'ai également rajouté au swith 'action' présent dans le fichier process.php le case suivant :

        
      $action = isset($_GET['action']) ? $_GET['action'] : false;
      
      switch ( $action ) {
            case 'update_compression':
      			if(isset($_GET["compression_rate"])) {
      			$_SESSION['compression_rate'] = $_POST["compression_rate"];
      			} else {
      			$_SESSION['compression_rate'] = $CONFIG['compression_rate'];}
        break;
      }
      


      est-il possible de lancer deux actions : l'une
      {$proxy}/includes/process.php?action=update
      pour la mise à jour de l'url et l'autre
       {$proxy}/includes/process.php?action=update_compression
      pour la mise à jour du taux de compression, et ceux par le même bouton "go" ?

      par avance, merci !
      0
      1. le bouton go est associé à un formulaire
        le pgm excéuté peut faire plusieurs chose.

        pour modifier une valeur dans le formaulaire, faire un javascript déclanché par onclick

        qui ferait
        <script>
        function modif(valeur) {
        document.nom_du_formulaire.nom_associé_à_l'input = valeur;
        }

        le quelquechose peut être passé en paramètre

        onclick=modif(10)

        tout ceci sans garantie de la syntaxe.
        0
        1. Merci JL

          J'y avais pensé, mais le problème du javascript c'est qu'il faut que le client télécharge un fichier supplémentaire.

          Or dans l'environnement dans lequel le script sera utilisé, la bande passante sera de 5Ko/s et le ping de 2 secondes !!! autant dire une éternité.

          C'est pour cela que je souhaite me passer de javascript, et faire un traitement uniquement du coté serveur, et retourner le minimum de fichiers.

          Mais est-ce possible de faire ce traitement uniquement coté php ??
          0
          1. Le javascript n'est pas un programme supplémentaire à télécharger, il est natif dans le navigateur, il peut seulement être désactivé.

            par défaut dans un navigateur il est toujours activé, environ 10% des utilisateurs le désactivent en pensant que c'est dangereux, mais ils ont tort car javascript n'a pas accès au système de fichier du PC, et beaucoup de sites ne fonctionnent plus.

            Je ne vois pas pourquoi tu tiens absolument à passer la valeur par l'URL, comme expliqué plus haut ton formulaire va poster la valeur du bouton coché, il suffit de récupérer dans ta page comme tu fais avec switch

            et mettre un troisieme bouton radio "pas de compression"
            0