Mise à jour !

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 16:42

Bon grace à votre aide tout fonctionne !! merci merci

LA seule chose qui ne fonctionne pas c'est les cases à cocher...

J'ai mon tableau sous cette forme :
<form method=post name="form1" id="form1">
        <table width="411" border="0" align="center" class="win_blue">
          <tr>
            <td width="27"><input name='id_garanties[]1' type=checkbox class="win_blue" id="id_garanties[]1" value="RESPONSABILITE CIVILE">
                </span>
                </label></td>
            <td width="205" class="win_blue_text">RESPONSABILITE CIVILE</td>
            <td width="100">&nbsp;</td>
          </tr>
          <tr>
            <td><input name='id_garanties[]2' type=checkbox class="win_blue" id="id_garanties[]2" value="DEFENSE / RECOURS">
                </span></td>
            <td class="win_blue_text">DEFENSE / RECOURS</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><input name="id_garanties[]3" type="checkbox" id="id_garanties[]3" value="ASSISTANCE"></td>
            <td class="win_blue_text">ASSISTANCE</td>
            <td><select name="franchises[Dommages]" id="franchises[Dommages]">
                <option value="00 Kms">00 Kms</option>
                <option value="30 Kms">30 Kms</option>
                <option value="50 Kms">50 Kms</option>
            </select></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]4" type="checkbox" id="id_garanties[]4" value="ASSURANCE DU CONDUCTEUR"></td>
            <td class="win_blue_text">ASSURANCE DU CONDUCTEUR</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><input name="id_garanties[]5" type="checkbox" id="id_garanties[]5" value="INCENDIE"></td>
            <td class="win_blue_text">INCENDIE</td>
            <td><input name='franchises[INCENDIE]5' type=text class="win_blue_text" id="franchises[INCENDIE]5" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro </span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]6" type="checkbox" id="id_garanties[]6" value="VOL / VANDALISME"></td>
            <td class="win_blue_text">VOL / VANDALISME</td>
            <td><input name='franchises[VOL / VANDALISME]6' type=text class="win_blue_text" id="franchises[VOL / VANDALISME]6" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro</span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]7" type="checkbox" id="id_garanties[]7" value="BRIS DE GLACE"></td>
            <td class="win_blue_text">BRIS DE GLACE</td>
            <td><input name='franchises[BRIS DE GLACE]7' type=text class="win_blue_text" id="franchises[BRIS DE GLACE]7" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro</span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]8" type="checkbox" id="id_garanties[]8" value="DOMMAGES COLLISION"></td>
            <td class="win_blue_text">DOMMAGES COLLISION</td>
            <td><input name='franchises[DOMMAGES COLLISION]8' type=text class="win_blue_text" id="franchises[DOMMAGES COLLISION]8" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro</span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]9" type="checkbox" id="id_garanties[]9" value="DOMMAGES TOUS ACCIDENTS"></td>
            <td class="win_blue_text">DOMMAGES TOUS ACCIDENTS</td>
            <td><input name='franchises[DOMMAGES TOUS ACCIDENTS]9' type=text class="win_blue_text" id="franchises[DOMMAGES TOUS ACCIDENTS]9" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro</span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]10" type="checkbox" id="id_garanties[]10" value="ACCESSOIRES"></td>
            <td class="win_blue_text">ACCESSOIRES</td>
            <td><input name='franchises[ACCESSOIRES]10' type=text class="win_blue_text" id="franchises[ACCESSOIRES]10" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro</span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]11" type="checkbox" id="id_garanties[]11" value="EFFETS / OBJETS PERSONNELS"></td>
            <td class="win_blue_text">EFFETS / OBJETS PERSONNELS</td>
            <td><input name='franchises[EFFETS / OBJETS PERSONNELS]11' type=text class="win_blue_text" id="franchises[EFFETS / OBJETS PERSONNELS]11" value="0" size="8">
                <span class="win_blue_text Style1">&euro;uro</span></td>
          </tr>
          <tr>
            <td><input name="id_garanties[]12" type="checkbox" id="id_garanties[]12" value="PROTECTION JURIDIQUE"></td>
            <td class="win_blue_text">PROTECTION JURIDIQUE</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><input name="id_garanties[]13" type="checkbox" id="id_garanties[]13" value="CREDIT BAIL">            </td>
            <td class="win_blue_text">CREDIT BAIL</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3"><label></label>
                <label>
                <input name="numero" type="hidden" id="numero" value="<?php echo $_GET['numclient']; ?>">
                <input name="numero_contrat" type="hidden" id="numero_contrat" value="<?php echo $_GET['numero_contrat']; ?>">
                <input name="numero_contrat" type="text" id="numero_contrat" value="<?php echo $_GET['numero_contrat']; ?>">
              </label></td>
          </tr>
          <tr>
            <td colspan="3"><div align="center">
                <input name='valider' type=submit class="win_blue_titre" value='Valider les garanties'>
            </div></td>
          </tr>
        </table>
    <p><a href="javascript:history.go(-1);"><-- Retour</a></p>
  </form>

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 16:46

je reprend mon post car j'ai validé par erreur...

j'aimerai donc que les cases ce coche si la garantie est présente dans ma base.


Comment faire ??

merci

Mammouth du PHP | 19672 Messages

21 déc. 2005, 16:47

pourquoi ajoutes-tu un chiffre à tes noms de champ : id_garanties[]2 par exemple: si tu mets simplement id_garanties[], tu obtiendras les données dans un tableau indexé id_garantie dans lequel seront stockées toutes les cases cochées. Tu n'as pas besoin d'ajouter un numéro, la numérotation est automatique, mais ne correspondra pas forcément à ta numérotation manuelle.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 16:50

En faite j'ajoute dans ma base les données de cette façon :
<?php //Reception des données nécéssaires 
$id_garantie = $_POST["id_garanties"]; //une liste de cases à cocher 
$franchises = $_POST["franchises"]; //une liste d'input's idexés par id_garantie 
$numero_contrat = $_POST["numero_contrat"]; //un input 
//Parcourir la liste des garanties cochées 
if ($id_garanties && count($id_garanties) >0) { 
   foreach ($id_garanties as $id_garantie) 
      if ($id_garantie){ 
             //trouver la franchise de cette garantie 
             $une_franchise = $franchises[$id_garantie]; 
			 
             //On a tout : l'id, le numero_contrat, l'id franchise et le montant franchise 
            //On peut lancer un INSERT dans la table garanties 
           $SQL = "INSERT INTO garanties (num_contrat,garanties,franchise) VALUES ('$numero_contrat', '$id_garantie', '$une_franchise')"; 
            
           //Exécuter cette requête 
           mysql_query ($SQL); 
		   
      } //Au suivant 
	  

} else echo ""; //cas de non garanties 

?> 

Je pense que je suis obligé de numeroté manuellement non ?

Mammouth du PHP | 19672 Messages

21 déc. 2005, 16:55

Attention, $id_garantie dans ce cas est un tableau indexé, tu devras donc préciser l'index en mettant $id_garantie[0], $id_garantie[1], etc... : il te faut donc compter le nombre de valeurs enregistrées dans ce trableau et construie dynamiquement ta requête en ajoutant une ligne à chaque fois.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 17:09

Oula ca depasse mes competences !!
LOL

Tu peux pas me mettre un petit exemple ? [-o<

Merci

Mammouth du PHP | 19672 Messages

21 déc. 2005, 17:18

Bon ok, un exemple, mais pas nécessairement le code que tu devras utiliser, je te montre juste le principe de fonctionnement:
<?php
/* D'abord on récupère les variables */
$var = isset($_POST['var']) ? $_POST['var'] : "";

/* On compte combien on a de résultats (on sait que $var est un tableau) */
$nb_cases_cochees = count($var);

/* On crée le début de notre requête d'insertion: */
$sql = "INSERT INTO ma_table (`champ_var`) VALUES ";

/* On prépare toutes les données à insérer dans un boucle */
for($i = 0; $i < $nb_cases_cochees; $i++)
{
    $sql .= "('". $var[$i] ."')";
    /* Tant qu'on est pas à la dernière valeur du tableau, on ajoute une virgule, sinon, on termine */
    $sql .= ($i < ($nb_cases_cochees - 1)) ? ", " : null;
}

/* La requête est maintenant complétée : pour s'assurer du coup, on vérifie en l'affichant */
echo("<code>". $sql ."</code>\n");
?>
Suis bien les commentaires, ça devrait t'aider à comprendre le fonctionnement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: