Page 1 sur 1
Case à cocher !
Posté : 29 janv. 2006, 17:14
par Dom!
Bonjour à tous !
Je galére depuis deux semaines avec ce truc merci pour votre aide ...
J'ai une table garanties composée comme suit :
id N° type franchise
1 32 Vol 30
2 32 Incendie 40
3 66 BDG 0
Je cré un tableau avec des cases à cocher et je souhaite que quand le type est dans ma base elle soit cochée. Mes cases à cocher sont de type :
<input type=checkbox name='id_garanties[]' value='DEFENSE / RECOURS'>
Merci pour votre aide je galére trop...
Posté : 29 janv. 2006, 19:19
par ouckileou
Salut,
pour cocher d'office une checkbox :
donc il suffit de faire un test au moment où tu construis tes cases à cocher et d'insérer le code pour la cocher
Tu peux t'inspirer de ça :
Pré-positionner une liste déroulante
C'est le même principe
Posté : 30 janv. 2006, 14:57
par Dom!
Salut,
pour cocher d'office une checkbox :
donc il suffit de faire un test au moment où tu construis tes cases à cocher et d'insérer le code pour la cocher
Mais si la case est cochée d'office je dois donc faire un test pour la décocher ?? non ?
Le probleme c'est que je n'ai pas pu me débrouilles avec le lien que tu m'a donné... Peux tu m'aider ???
Merciiiiiiiii
Posté : 30 janv. 2006, 15:31
par ouckileou
Mais si la case est cochée d'office je dois donc faire un test pour la décocher ?? non ?
Non, tu ne la coches que si c'ets ce à quoi elle correspon se trouve dans la table
Donc pour chaque case, tu fais ton test, et si il est bon tu metle code pour la cocher par défaut.
Posté : 30 janv. 2006, 16:04
par Dom!
Bon ok ! j'ai compris la manipe.... c'est deja ca.
Maintenant je ne sais pas du tout comment faire cette vérification.
Je débute dans le php.. merci pour votre aide.

Posté : 30 janv. 2006, 17:22
par ouckileou
Montre nous déjà comment tu affiches ces cases
Posté : 30 janv. 2006, 17:32
par Dom!
Alors pour afficher mes cases je procéde comme ceci :
<input name='id_garanties[]' type=checkbox value='DEFENSE / RECOURS' checked>
<input name='id_garanties[]' type=checkbox value='RESPONSABILITE CIVILE' checked>
cette case est cochée par défault... merci pour votre aide !!

Posté : 30 janv. 2006, 17:38
par ouckileou
oui ça je me doute bien, c'est le code HTML d'une checkbox...
Mais tu ne les affiche pas dynamiquement ? C'est du HTML en dur ?
Si tu dois comparer avec ce qui est dans la table, tu fais une requête, tu récupères les données, et ensuite pour chaque valeur de checkbox qui se trouve dans ces résultats, tu la coches.
Posté : 30 janv. 2006, 17:44
par Dom!
HA pardon !
alors j'ai fais un truc de ce genre. Mais évidemment ca ne fonctionne pas
if ($row_garanties['valeur'] != "RESPONSABILITE CIVILE") {echo "checked=\"checked\"";}
Merciii
Posté : 30 janv. 2006, 17:57
par ouckileou
Est-ce qu'on peut avoir le bloc de code complet ?
Récupération des valeurs, création des cases à cocher, tests...
ligne par ligne on avance pas
Mais c'est le principe en gros, sauf que tu as mis un "différent" (!=) alors que tu souhaites cocher les cases quand les valeurs sont dans la base, ce serait donc plutôt "égal" (=) non ?
Posté : 30 janv. 2006, 17:59
par Dom!
je t'envoi le code :
<?php
$numero_contrat = $_POST["numero_contrat"];
$sql="DELETE FROM garanties WHERE num_contrat='$numero_contrat'";
mysql_query($sql) or die(mysql_error());
//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
?>
<input name='id_garanties[]'type=checkbox value='RESPONSABILITE CIVILE'
<?php if ($row_garanties['valeur'] = "RESPONSABILITE CIVILE") {echo "checked=\"checked\"";} ?>>
Posté : 31 janv. 2006, 09:44
par Dom!
Bon je reviens avec mes cases à cocher.
Alors j'ai fait ca mais j'ai une erreur :
<?
if (isset($_GET['numero_contrat']))
{
$num_contrat = $_GET['numero_contrat'];
}
else
{
$num_contrat = 18;
}
$retour = mysql_query("SELECT * FROM garanties WHERE num_contrat = $numero_contrat");
while ($donnees = mysql_fetch_array($retour))
{
echo $donnees['garanties'];
}
?>
Voici maintenant l'erreur :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/Intranet/garanties.php on line 349
Merci pour votre aide
Posté : 31 janv. 2006, 15:45
par zehle
donne la ligne exacte de l'erreur (la ligne 349).
et puis ce qui precede, ça pourrai aider.
Posté : 31 janv. 2006, 22:53
par Truc
décompose la requete puis affiche cette même requete générée avec echo pour verifier qu'elle est bien construite. Et aussi ajouter un message d'erreur:
$sql="SELECT * FROM garanties WHERE num_contrat = $numero_contrat";
echo '<p>'.$sql.'</p>';
mysql_query($sql) or die('Erreur SQL! <br />'.$sql.'<br />'.mysql_error());
à quoi correspond $numero_contrat ?