Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2007, 09h51   #1
Membre à l'essai
 
Inscription : février 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 91
Points : 23
Points : 23
Par défaut [PHP-JS] Récupération de valeur de checkbox + valeur de input text associé

Bonjour tout le monde....

Bon j'ai fouillé sur le forum et j'arrive pas à m'en sortir :/
J'explique mon soucis :

Je cherche à faire un formulaire avec des checkbox suivi d'un input text ou la personne mettrai un valeur associé à la checkbox située sur la même ligne

[x] "choix 1" => [valeur de ce choix]
[x] "choix 2" => [valeur de ce choix]
etc...

concrétement, ceci est dans le but de proposer une liste d'erreurs courrantes... si dans le mois l'erreur a été rencontré on coche la case puis on ajoute dans le input text le nombre de fois où l'erreur à été rencontré...

arf j'espère que je suis clair :/

là franchement je galère... j'ai jamais été fort en ce qui concerne les tableaux mais là je vois pas comment faire...

Merci de votre aide
amans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 11h19   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Qu'est-ce qui pose problème précisement ? La façon de faire générale ou le fait que les cases non cochées ne sont pas transmises à la page de traitement (si tu l'as pas encore vu tu verras que ça posera problème) ?

Un petit peu de code sur ce que tu as déjà commencé ?
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 11h34   #3
Membre à l'essai
 
Inscription : février 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 91
Points : 23
Points : 23
En fait je suppose que c'est la façon de le faire... vu que j'ai beau tourné mon truc dans tout les sens j'arrive pas à avoir ce que je veux...

Ca c'est mon formulaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
echo "<form action='act-gen-crete.php' method='POST'>";
	$queryala = "SELECT * FROM crete_alarm"; 
	$resultala = mysql_query($queryala) or die(mysql_error());
	while($rowala = mysql_fetch_array($resultala))
		{
		$alarm_lbl = $rowala['alarm_lbl'];
		$alarm_obj = $rowala['alarm_obj'];
		echo "<input type='checkbox' name='ala_chk[]' value='".$alarm_obj."' />".$alarm_lbl." (".$alarm_obj.")";
		echo "<input type='text' name='ala_chk_val[]' size='5' /><br/>";
		}
	echo "<br/>";
echo "<input type='submit' value='OK'>";
echo "</form>";
Inutile de poster le 'act-gen-crete.php' qui tente de récupérer les variables...tout est faux, j'arrive pas à grand chose :/

Sinon, au vu du code, ce que je veux récupérer c'est donc le "$alarm_obj" de chaque checkbox cochée avec le <input type='text'> associé à chaque ligne de checkbox...
Evidemment je cherche à récupérer uniquement les checkbox cochées, les autres je m'en fous.
Mon gros problème ce n'est pas de récupérer les valeurs des checkbox en fait... c'est surtout de récupérer les valeurs des checkbox avec la valeur de leur inputs associés.

Merci pour vos réponses
amans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 12h06   #4
Membre habitué
 
Inscription : juillet 2006
Messages : 137
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 137
Points : 142
Points : 142
Salut,

Une solution serai d'utiliser javascript:
D'abord tu lie tes 2 deux input (checkbox et text) avec un id commun, par exemple:
Code :
1
2
3
4
 
$i = 0;
<input type="checkbox" id="box".$i." name....
<input type="text" id="text".$i." name...
Ensuite dans ton code javascript, tu récupère la valeur de la checkbox et son texte:
Code :
1
2
3
 
document.getElementById('box'+i)...
document.getElementById('text'+i)...
En gros, c'est ça, j'ai été vite juste pour te donner une idée après si tu veux plus détail, n'hésite pas !
mikaoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 08h59   #5
Membre à l'essai
 
Inscription : février 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 91
Points : 23
Points : 23
Bonjour,

désolé pour le temps de réponse mais réunion puis we...

j'avais bien peur justement qu'on me propose du javascript :/
je veux bien un peu plus d'aide dessus comme tu me le proposes parceque je suis pas très callé en javascript... voir pas du tout callé

merci de ton aide
amans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 11h24   #6
Membre habitué
 
Inscription : juillet 2006
Messages : 137
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 137
Points : 142
Points : 142
Ah, une autre idée, sans javascript ;-)

Tu as des 2 inputs comme ça:
Code :
1
2
3
4
$i = 0;
		echo "<input type='checkbox' name='ala_chk[]' value='".$alarm_obj."' />".$alarm_lbl." (".$alarm_obj.")";
print '<input type="text" name="'.$alarm_obj.'" />';
Et la page qui récupère ton formulaire, tu as:
Code :
1
2
3
4
5
 
$mesBox= $_POST['alo_chk']; //tu récupère les checkbox cochées
for($i=0;$i<sizeof($mesBox);$i++){
 print "case coché:".$mesBox[$i];
 print "Valeur associée:".$_POST[$mesBox[$i]]; // en effet le nom de l'input associé à une checkbox est la valeur de cette checkbox.
Voilà, j'ai pas testé mais ça devrait marcher, peut être à quelques réglages près !
mikaoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 12h40   #7
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Sans entrer dans les détails de ton code, il faut que les éléments de formulaire soient explicitement indicés :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form action="act-gen-crete.php" method="post">
<?php
  $queryala = 'SELECT * 
               FROM crete_alarm'; 
  $resultala = mysql_query($queryala) 
    or die(mysql_error());
  $i = 0;
  while($rowala = mysql_fetch_array($resultala))
  {
    $alarm_lbl = $rowala['alarm_lbl'];
    $alarm_obj = $rowala['alarm_obj'];
    echo '<input type="checkbox" name="ala_chk[' . $i . ']" value="' . $alarm_obj . '" />' . $alarm_lbl . '(' . $alarm_obj . ')"';
    echo '<input type="text" name="ala_chk_val[' . $i . ']" size="5" /><br/>';
    $i ++;
  }
?>
<br/>
<input type="submit" value="OK">
</form>
Et pour la récupération :
Code :
1
2
3
4
5
6
7
8
9
<?php
  $checkbox = $_POST['ala_chk'];
  $texte = $_POST['ala_chk_val'];
  foreach ($checkbox as $cle => $valeur)
  {
    echo 'checkbox cochée : ' . $valeur . '<br>';
    echo 'valeur associée : ' . $texte[$cle] . '<br>';
  }
?>
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 15h13   #8
Membre à l'essai
 
Inscription : février 2006
Messages : 91
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 91
Points : 23
Points : 23
super !!

j'ai pris la soluce de jeca et tout fonctionne parfaitement

merci à tout le monde
amans est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h50.


 
 
 
 
Partenaires

Hébergement Web