foreach($_POST["cac"] as $index => $valeur)

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 : foreach($_POST["cac"] as $index => $valeur)

Re: foreach($_POST["cac"] as $index => $valeur)

par Megadeth » 14 sept. 2009, 10:44

Bonjour,

Oui tu as raison, j'ai fait une confusion...

En fait je suis sur une autre piste mais je crois que je dois repenser ma table à cause d'un DELETE massif en début de script mais nécessaire.

Le DELETE fonctionne bien mais en agissant de la sorte je perds d'autres info sur ma table de liaison hors je voudrais garder l'id de ma ligne pour simplement faire une mise à jour mais je crois que ce n'est pas possible.

Je voudrais simplement récupérer l'id de ligne pour l'update, l'ajout ou le delete (car j'ai ces 3 cas de figure), l'id de la case et l'état de la case.
En gros si la case n'est pas cochée mais qu'elle était présente en base (j'ai changé d'avis en gros), je dois pouvoir faire ce delete spécifique.

Bien à vous,

Mega
;)

Re: foreach($_POST["cac"] as $index => $valeur)

par Babounet » 13 sept. 2009, 17:59

Les "$$" permettent d'utiliser les variables dynamiques.
Et parce qu'une bonne documentation vaut mieux que des explications peu claires de ma part: http://fr.php.net/manual/fr/language.va ... riable.php

J'avoue ne pas du tout voir le rapport avec la récupération de données d'un formulaire...

Re: foreach($_POST["cac"] as $index => $valeur)

par Megadeth » 11 sept. 2009, 19:16

Bonjouoir !

Je crois qu'il existait une autre syntaxe qui permettait de connaître l'id et la valeur de la case à cocher avec un double $$ mais je ne me souviens plus où j'ai vu ça, ca vous parle ?

Dans ma page en amont, j'ai :
<input name="cazaco[]" type="checkbox" value="'.$id.'"';
(read only pour celles que je voulais disabled maintenant)

Dans ma page de traitement :
foreach($_POST["cazaco"] as $index => $valeur) {
...
avec un replace en boucle...

Je voudrais avec le double $ récupérer l'id de la case et l'état de la case svp.

En espérant être assez clair...

Cordialement,

Mega
;)

Re: foreach($_POST["cac"] as $index => $valeur)

par Megadeth » 04 sept. 2009, 12:07

Bonjour AB,
Bonsoir,
Hum... comme entrée en matière, j'ai déjà vu mieux :roll:
En ce qui concerne les champs "disabled" effectivement ils ne sont pas transmis mais il suffit d'utiliser à la place "readonly" auquel cas ils ne pourront pas être modifiés mais seront néanmoins transmis.
J'en suis conscient mais je travaille dans l'urgence et au moins ce n'est pas hypocrite de ma part en menant les gens en bateau. Ca sous-entend effectivement que je demande à la fois de l'aide et un investissement de la personne. On m'a souvent dit sur ce forum pourquoi réinventer la roue ? Je n'ai (mal)heureusement pas la science infuse et j'apprécie grandement le côté donnant - donnant (tu me rends service, je n'oublie pas, j'te rends service). Ca n'enlève en rien au fait que je suis toujours en mode apprentissage, curieux de tout...J'espère que mon état d'esprit est clairement retranscrit dans mes propos.

Je te remercie pour "l'astuce readonly", je fais le test dès que possible et te/vous tiens au courant car la résolution de mon problème pourra certainement aider autrui à l'avenir.

Bien à toi.

Mega
;)

Re: foreach($_POST["cac"] as $index => $valeur)

par AB » 04 sept. 2009, 04:22

Bonsoir,

Je voudrais bien un petit coup de main (faute principalement de temps) pour réaliser ce script svp merci.
Hum... comme entrée en matière, j'ai déjà vu mieux :roll:

En ce qui concerne les champs "disabled" effectivement ils ne sont pas transmis mais il suffit d'utiliser à la place "readonly" auquel cas ils ne pourront pas être modifiés mais seront néanmoins transmis.

Pour tes cases à cocher, il suffit de les récupérer ainsi
$macase = isset($_POST['macase'])? 1 : 0;
ainsi en utilisant la variable $macase tu pourras toujours mettre le champ de ta base à jour que la case soit cochée ou non (dans mon exemple valeur 1 si coché, valeur 0 si non coché).

foreach($_POST["cac"] as $index => $valeur)

par Megadeth » 04 sept. 2009, 01:13

Bonsoir,

Je voudrais bien un petit coup de main (faute principalement de temps) pour réaliser ce script svp merci.

Il était une fois une liste de cases à cocher, certaines actives et d'autres disabled dans un form...

A l'heure actuelle : ca fonctionne mais je n'historise rien, car je vide ma table à chaque ajout/à chaque exécution de la page, mais le cahier des charges à changer erf #-o
if ($_POST["cac"]) { 
	$q = "DELETE FROM links WHERE adh_lin = ".$_SESSION["id"]." AND flag_lin = 0";
	$r = mysql_query($q);
		foreach($_POST["cac"] as $index => $valeur) {
		$q2 = "INSERT INTO links (id_lin,adh_lin,tour_lin,cap_lin,flag_lin) values ('',".$_SESSION["id"].",".$valeur.",'',0)"; 
		$r2 = mysql_query($q2);
		}
		
	}else{
	
	$q3 = "DELETE FROM links WHERE adh_lin = ".$_SESSION["id"]." AND flag_lin = 0";
	$r3 = mysql_query($q3);
}
J'ai exploré la piste replace, en vain...et essayé de faire un select mais dans la boucle du foreach ma variable de référence se perd et prend une valeur null(e) :cry:

Pour se faire, j'ai été obligé de fabriquer une case à cocher en hidden pour que les cases disabled soient prises en compte car une case disabled dans un foreach ca ne vaut rien, le $index => $valeur ne se fait pas. Ca permet de poster toutes les lignes, tous les id...

Comme je panique un poil, j'en appelle à l'esprit logique très développé de certains :)

Ci-dessous la nouvelle gymnastique :
Une case à cocher disabled cochée doit rester cochée en base.
Une case à cocher disabled non cochée ne doit pas apparaître en base.
Une case à cocher active non cochée ne doit pas ou plus apparaître en base.
Une case à cocher active cochée doit apparaître ou être consolidée en base.

Merci de m'avoir lu et pour l'éventuel coup de pouce !

Mega
;)