Choix d'un nom pour des input type=radio dynamique

bullrot1985 Messages postés 22 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 26 avril 2009 - 31 oct. 2008 à 11:02
bullrot1985 Messages postés 22 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 26 avril 2009 - 3 nov. 2008 à 10:59
Bonjour a tous.

Voila je cree ne liste de rapport dynamiquement.
Pour chaque rapport je voudrais avoir un bouton type radio avec comme choix Yes ou No.

Je voudrais savoir comment gérer les noms et récupérer les choix pour pouvoir les stocker par la suite dans ma bdd.

voici mon code :

<?php
   
                    $reponse = mysql_query("SELECT * FROM reports WHERE Listing=1 ORDER BY Name "); // Requête SQL
                    $nb_entrees = mysql_num_rows($reponse);
                    // Puis on fait une boucle pour tout afficher.
                   
                    while($donnees = mysql_fetch_array($reponse))
                    {
                    echo '<tr>';
                    echo '<td class="col1"></td>'; 
                      echo '<td class="col2"><label class="green">Yes</label>
                                           <label class="red">No</label>';
                    echo '<td class="col3">' . $donnees['Name'] . '</td>';
                      $date= substr_replace($donnees['Date'], '', 7, 3);
                      echo '<td class="col4">' . $date . '</td>
                          </tr>';
                    }
                    ?>        

donc c'est au niveau des input type radio je precise :)

merci

6 réponses

cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
31 oct. 2008 à 14:20
Tu peux définir des index au niveau des name de ton radio. Au lieu d'écrire ra[] tu peux mettre ra[1] ou ra[2] ... et ton index devrait être ton Id_reports.

Essayes ce code :

<?php
  
  $reponse = mysql_query("SELECT * FROM reports WHERE Listing=1 ORDER BY Name "); // Requête SQL
  $nb_entrees = mysql_num_rows($reponse);
  // Puis on fait une boucle pour tout afficher.
 
  while($donnees = mysql_fetch_array($reponse))
  {
    echo '
    <tr>
      <td class="col1">
       
      </td>
      <td class="col2">
        <label class="green">Yes</label>
        <label class="red">No</label>
      <td class="col3">
        ' . $donnees['Name'] . '
      </td>';
    $date= substr_replace($donnees['Date'], '', 7, 3);
    echo '<td class="col4">' . $date . '</td>
    </tr>';
  }
?>

aKheNAtHoN
0
bullrot1985 Messages postés 22 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 26 avril 2009
3 nov. 2008 à 09:18
Merci pour ce code

Donc maintenant chaque ligne a son propre Radio avec comme nom : ra[valeur de l'id report].

comment puis-je récupérer cette valeur ?

merci
0
cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
3 nov. 2008 à 09:58
essayes ce code :

<?php
  echo '';
  print_r($_POST);
  foreach($_POST['ra'] as $id => $valeur) {
    echo 'Pour '.$id.' --> '.$valeur.'
';
  }
?>

aKheNAtHoN
0
bullrot1985 Messages postés 22 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 26 avril 2009
3 nov. 2008 à 10:11
sympa ton code !

je vais l'examiner de prêt. Sinon je me pose une question.

je vois toujours les tableaux comme ceci : 
nom pierre
age 27

peut-on faire : nom&age pierre 27
Au lieu de 2 collones en avoir 3 ?

si oui je pourrais optimiser mon code je pense vu que j'ai déjà un tableau ?

Merci de ton aide en tous cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
3 nov. 2008 à 10:35
Ben tu peux faire autant de dimensions que tu veux :

$_POST[--][nom]
$_POST[--][age]

Regardes concrètement :

<form method="post">
Personne 1 :

Nom :

Age :
<hr />
Personne 2 :


Nom :


Age :



</form>
<?php
  if (isset($_POST['pers'])) {
    echo '<hr />';
    print_r($_POST[pers']);
  }
?>

Là c'est un tableau de personnes - mais il aurais pu avoir 4 ou X dimensions. Pour chaque dimension rajoutes une [--clef--].

aKheNAtHoN
0
bullrot1985 Messages postés 22 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 26 avril 2009
3 nov. 2008 à 10:59
Oki je vois +- le principe mais j'ai encore du mal a faire la liaison avec la récupération des données et le tout dynamiquement.

en faite je voudrais le resultat final avoir un tableau. qui serait completer avec uniquement pour les lignes dont le input checkbox est coché.
Et pour ceux ci avoir l'id report et un 1 ou 0 suivant le input radio.

j'essaye de mettre toutes tes idées en place mais j'avoue que j'ai du mal.

donc je pense que ma partie du formulaire est correcte.

<?php
   
                    $reponse = mysql_query("SELECT * FROM reports WHERE Listing=1 ORDER BY Name "); // Requête SQL
                    $nb_entrees = mysql_num_rows($reponse);
                    // Puis on fait une boucle pour tout afficher.
                   
                    while($donnees = mysql_fetch_array($reponse))
                    {
                    echo '<tr>';
                    echo '<td class="col1"></td>'; 
                      echo '<td class="col2"><label class="green">Yes</label>
                                           <label class="red">No</label>';
                    echo '<td class="col3">' . $donnees['Name'] . '</td>';
                      $date= substr_replace($donnees['Date'], '', 7, 3);
                      echo '<td class="col4">' . $date . '</td>
                          </tr>';
                    }
                    ?>        

Comme ceci je pense avoir pour chaque ligne un tableau respectif avec dans la premiere collone l'id du report et dans la seconde un 1 ou 0.

Maintenant j'ai essayé de récuperer ce tableau mais je n'arrive a récupérer que la premiere collone.
voici mon code.
if(isset($_POST['cb']))
    {
    $rapports = $_POST['cb'];
        foreach($rapports as $id => $valeur)
        {
            echo 'Pour '.$id.' --> '.$valeur.'
';   
        }
    }
    else
    {
    $rapports =0;
    } 

et donc j'obtiens ce tableau :

Pour 0 --> 9
Pour 1 --> 1

j'arrive a récupérer seulement les rapport coché mais j'arrive pas a récupérer la valeur 1 ou 0 du radio associé.

Merci  
0
Rejoignez-nous