Bouton radio qui modifie le background color

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 : Bouton radio qui modifie le background color

Re: Bouton radio qui modifie le background color

par vatmx » 22 mars 2013, 10:05

Bonjour

Merci beaucoup pour les renseignements!
Je peux pas mettre en pratique tes conseils, je suis plus que débutant :oops:
Je peux adapter un code avec difficulté!

A bientôt

Re: Bouton radio qui modifie le background color

par moogli » 22 mars 2013, 01:17

Salut,


Les boutons radios doivent avoir le même nom pour être couplés.
À partir de la tu peux essayer de le nommer avec la notation tableau (name="radio[]") en indiquant en index (entre les crochets) la valeur de la clef représentant la ligne (la clef primaire de la ligne).

Lorsque l'on valide tu récupère un tableau dans $_POST['radio'] (dans mon exemple). Les index correspondent à la clef primaire de la table tu peux donc facilement mettre à jour cette valeur.

Je te conseil de garder en session les valeurs d'origine pour ne mettre à jour que les lignes modifier (éviter 2millions d'update pour 4 lignes modifiées).

Pour parcourir le tableau radio utilise foreach qui te simplifiera la tâche.

@+

Bouton radio qui modifie le background color

par vatmx » 21 mars 2013, 15:53

Bonjour

Je ne sais pas si c'est possible de modifier le background color d'une ligne de tableau à l'aide de bouton radio.
Une petite image
Image
Page administration
<?php
 
/************************************************************************/
/* vat.01509                                                                     */
/*                                                                      */
/* For this Module -> All Rights reserved <- Do NOT redistribute (2008) */
/************************************************************************/
 
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
 
$module_name = basename(dirname(__FILE__));
mxGetLangfile($module_name);
$pagetitle = _DEVIS;
 
include("header.php");
title(_DEVIS);
    if (isset($event['recerror'])) {
        openTableAl();
        echo '<div style="text-align: left;">' . _RECERRORTITLE . '<ul><li>' . implode('</li><li>', $event['recerror']) . '</li></ul></div>';
		}
$index = 0;
?>
<!-- Début Menu-->
<?php
include("includes/menu.html");
?>
<!-- Fin Menu-->
<!-- Début Table-->
<?php
$requete = "SELECT * FROM formallin_formallex WHERE sessionFormallinEditor = 'nom de mon formulaire' ORDER BY date DESC";
 
// envoi de la requete
$resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
 
// tant qu'il y a un enregistrement, les instructions dans la boucle s'exécutent
echo "<table class='full list'>";
 
  echo "<tr>";
  echo "<th width='25'>ID</th>";
  echo "<th width='70'>Date</th>";
  echo "<th width='80'>Formulaire</th>";
  echo "<th>Contenu</th>";
  echo "<th width='10'>+</th>";
  echo "<th width='10'>-</th>";
  echo "</tr>";
 
while ($ligne = mysql_fetch_assoc($resultat)) {
$date=date('d/m/Y H:i:s', $ligne['date']);
 
  echo "<tr>";
  echo "<td>".$ligne['id']."</td>";
  echo "<td>".$date."</td>";
  echo "<td>Devis gratuit</td>";
  echo "<td>".$ligne['content']."</td>";
  ?>
<form method="post" action="tableaux-file-index_t.html"> 
<td><input type="radio" name="traitement" value="0" id="traitement1"/></td>
<td><input type="radio" name="traitement" value="1" id="traitement2"/></td>
<?php     
  echo "</tr>"; 
}
 
echo "</table>";
 
if(isset($erreur)) echo $erreur; 
mysql_close();
?>
<!-- Fin Table-->
 
<!-- Début Compteur-->
<!-- Début Compteur-->
Ce formulaire compte :
<?php
$Fichier = "formallin/formallin/files/admin/compteur_devis.txt";
if (is_file($Fichier)) {
	if ($TabFich = file($Fichier)) {
		for($i = 0; $i < count($TabFich); $i++)
echo $TabFich[$i]; 		
 }
  }
?>
 demande(s)
<!-- Fin Compteur-->
<div align="right">
<input type="submit" name="envoie" value="Modifier">
</form>
</div>
 
<?php
include("footer.php");
?>
- j'ai rajouté les boutons radio dans ma page administration lignes 57 et 58 le bouton submit est à la ligne 85.
- j'ai rajouté une colonne traitement de type char(1) dans ma bdd
- je ne sais pas comment enregistrer le choix de mes boutons radio dans ma bdd :oops:

En image j'aimerais si cela est possible obtenir le résultat suivant
Image
Page affichage
<?php
 
/************************************************************************/
/* vat.01509                                                                     */
/*                                                                      */
/* For this Module -> All Rights reserved <- Do NOT redistribute (2008) */
/************************************************************************/
 
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
 
$module_name = basename(dirname(__FILE__));
mxGetLangfile($module_name);
$pagetitle = _DEVIS_P;
 
include("header.php");
title(_DEVIS_P);
    if (isset($event['recerror'])) {
        openTableAl();
        echo '<div style="text-align: left;">' . _RECERRORTITLE . '<ul><li>' . implode('</li><li>', $event['recerror']) . '</li></ul></div>';
		}
$index = 0;
?>
<!-- Début Menu-->
<?php
include("includes/menu.html");
?>
<!-- Fin Menu-->
<!-- Début Table-->
<?php
$requete = "SELECT * FROM formallin_formallex WHERE sessionFormallinEditor = 'nom de mon formulaire' ORDER BY date DESC";
 
// envoi de la requete
$resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
 
// tant qu'il y a un enregistrement, les instructions dans la boucle s'exécutent
echo "<table class='full list'>";
 
  echo "<tr>";
  echo "<th width='25'>ID</th>";
  echo "<th width='70'>Date</th>";
  echo "<th width='80'>Formulaire</th>";
  echo "<th>Contenu</th>";
  echo "</tr>";
 
while ($ligne = mysql_fetch_assoc($resultat)) {
$date=date('d/m/Y H:i:s', $ligne['date']);
$jour=explode('/',$date);
if($jour[0] % 2 !=1){
 
  echo "<tr>";
  echo "<td>".$ligne['id']."</td>";
  echo "<td>".$date."</td>";
  echo "<td>Devis gratuit</td>";
  echo "<td>".$ligne['content']."</td>";    
  echo "</tr>"; 
}
 }
echo "</table>"; 
if(isset($erreur)) echo $erreur; 
?>
<!-- Fin Table-->
 
<!-- Début Compteur-->
<!-- Fin Compteur-->
<?php
include("footer.php");
?>
Voila grosso modo l'idée.
Merci d'avance de bien vouloir me donner un coup de pouce :priere:
A bientôt