Rechercher : dans
Par :

[PHP] input variable dans une boucle

Dernière réponse le 11 mar 2008 à 18:31:58 AzRaElDGT, le 11 mar 2008 à 13:19:41 
 Signaler ce message aux modérateurs

Bonjour,

Bonjour,

J'ai un p'tit problème au quel je m'attendais...

Voila mon code:

<form name="effacer" action="effacer.php" method="post" ENCTYPE="multipart/form-data">
                <?               
            $req_tabl = 'SELECT *
            FROM site_resa               
            WHERE pseudo = "'.$var.'"
            AND date1 >= "'.date("Y-m-d").'"
            ORDER BY date1';

            $req = mysql_query($req_tabl)or die('Erreur SQL !<br>'.$req_tabl.'<br>'.mysql_error());
           
            while ($row=mysql_fetch_array($req))
            {               
            echo '<tr onMouseOver ="this.style.background=\'#2C2D37\'" onMouseOut ="this.style.background=\'#40424E\'">
                    <td align="center">'.$row['4'].'</td>
                    <td align="center">'.$row['5'].'</td>
                    <td align="center">'.$row['7'].'</td>
                    <td align="center">'.$row['8'].'</td>
                    <td align="center">'.$row['9'].'</td>
                    <td align="center"><input type="image" src="./img/6728-vor-Xchat1.png" onmouseover="style.cursor=\'pointer\'"><input type="text" name="id_pub" id="id_pub" value="'.$row['0'].'"><input type="text" name="url_pub" id="url_pub" value="'.$row['10'].'"></td>
                </tr>';
            }               
                ?>
</form>


Puis la page "efface.php":
<?
$id= $_POST['id_pub'];
$url= $_POST['url_pub'];
?>
<head>
</head>
<body>
<?php
echo $id;
unlink($url);
mysql_query("DELETE FROM site_resa WHERE ID = ".$id." ");
?>
<META HTTP-EQUIV="Refresh" CONTENT="4;URL=./calendrier.php">
</body>

La connections a la base est bonne, mais j'ai pas jugé nécessaire de mettre cette partie.

Les champs <input "url_pub" et "id_pub"> sont de type text pour voir leur contenu, je les mettrais en "hidden" dés que tous marchera.

Mon problème est dans le fond trés prévisible, sur ma 1er page lorsque je clique sur le <input image> je devrais transmettre les valeurs contenues dans les champs "url_id" et "pub_id" en POST vers le formulaire effacer.php.

Et sur ce formulaire je devrais récupérer mes valeurs. ET bah non!!

Lorsque je clique sur mon <input image> et bien que le <input text "id_pub"> affiche l'id du bon enregistrement. Le "echo $id;" de ma page effacer.php m'affiche par défaut l'id du 1er enregistrement mais pas celui sur quelle j'ai cliqué.

Et c'est normal! Puisque a cause de ma boucle dans la 1er page tous les <input text> de mon tableau portent le même nom!

Je pourrais passer par $_GET mais pour des raison de sécuritée évidante je suis vraiment pas chaud!

Mais en $_POST je ne sais pas comment résoudre ce prolème...

Merci d'avance pour vos lumières.

Az
Configuration: Windows XP
Firefox 2.0.0.12

Meilleures réponses pour « [PHP] input variable dans une boucle » dans :
PHP - Les variables Voir Concept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
[Webmaster] Afficher facilement le code php/xhtml de vos pages VoirSi vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions. En php Afficher le code php Afficher le code html En html Informations Voir aussi En php Afficher le code php La...
[PHP] Les ressemblances à ne pas confondre VoirIntroduction Concaténation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente plusieurs fonction ou astuces en...
Utilisation de l'objet XMLHttpRequest VoirUtilisation de l'objet XMLHttpRequest I - Introduction 1.1 - Quelques mots 1.2 - Techniques pré-requises II - Présentation 2.1 - Principe 2.2 - Utilisation asynchrone 2.3 - Avantages 2.4 - Inconvénients III - Architecture IV - Mise...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...

1

Alain_42, le 11 mar 2008 à 13:55:37

Bonjour,



pour faire des noms dynamiquement il faut passer par des "varaibles variables"

ex:

<form name="effacer" action="effacer.php" method="post" ENCTYPE="multipart/form-data">
<?php               
   $req_tabl = 'SELECT * FROM site_resa WHERE pseudo = "'.$var.'" AND date1 >= "'.date("Y-m-d").'" ORDER BY date1';
   $req = mysql_query($req_tabl)or die('Erreur SQL !<br>'.$req_tabl.'<br>'.mysql_error());
   $i=0;      
   while ($row=mysql_fetch_array($req)){
		$name_input_pub=${'id_pub'.$i};
		$name_input_url=${'url_pub'.$i};
		
        echo '<tr onMouseOver ="this.style.background=\'#2C2D37\'" onMouseOut ="this.style.background=\'#40424E\'">
             <td align="center">'.$row['4'].'</td>
             <td align="center">'.$row['5'].'</td>
             <td align="center">'.$row['7'].'</td>
             <td align="center">'.$row['8'].'</td>
             <td align="center">'.$row['9'].'</td>
             <td align="center"><input type="image" src="./img/6728-vor-Xchat1.png" onmouseover="style.cursor=\'pointer\'"><input type="text" name="'.$name_input_pub.'" id="id_pub" value="'.$row['0'].'"><input type="text" name="'.$name_input_url.'" id="url_pub" value="'.$row['10'].'"></td>
             </tr>';
	$i++;		 
 }               
 ?>
</form>


et pour les recuperer tu fais une boucle sur $_POST en testant ceux qui commencent par 'i_pub' par exemple avec la fonction substr()

Mais une chose me chiffonne comment choisis tu l'élement à supprimer dans ta liste ?

Répondre à Alain_42

2

AzRaElDGT, le 11 mar 2008 à 14:27:19

En cliquant sur le input image.

Enfin...! J'espere que c'est possible... puisque l'id que je veux effacer ce trouve dans le champs text "'.$name_input_pub.'" qui corespond à $row['0'].

j'essaie ça de suite

Az

Répondre à AzRaElDGT

3

AzRaElDGT, le 11 mar 2008 à 14:39:42

Ah... Oui en effet je comprends tes craintes...Qui sont les miennes depuis le début...

$i va s'incrémenter de 1 en 1. Mais comment savoir sur le quel j'ai cliqué dans l'autre formulaire? Puisque le nom est variable?


Az

Répondre à AzRaElDGT

4

AzRaElDGT, le 11 mar 2008 à 16:57:07

Personne aurais une idée?

Az

Répondre à AzRaElDGT

5

 Alain_42, le 11 mar 2008 à 18:31:58

Il faut que tu mettes sur <image un lien qui appelle le fichier effacer.php avec en parametre dans l'URL le numero de l'id à supprimer.

Répondre à Alain_42