Comment modifier la valeur de plusieurs input en php?
7 messages
• Page 1 sur 1
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Comment modifier la valeur de plusieurs input en php?
Bonjour,
Je sèche sur la façon de procéder pour enregistrer en bd la valeur de plusieurs "input". En gros, je récupère la valeur d'un id qui correspond à une sous catégorie (ici sous_categorie_du_lien). Dans cette exemple, je veux modifier les valeurs du champ date_de_creation_du_lien correspondant à l'id transmit se trouvant dans le champ sous_categorie_du_lien.
---------Table LIEN_DU_SITE---------------------
id---sous_categorie_du_lien---titre_du_lien---date_de_creation_du_lien
-1--------1---------------------------titre 1-----------------------3------------
-2--------2---------------------------titre 2-----------------------0------------
-3--------1---------------------------titre 3-----------------------7------------
-4--------1---------------------------titre 4-----------------------5------------
Jusque la, pas de soucis ... tout s'affiche comme je le souhaite.
La ou sa se gate, c'est pour récupérer les valeurs de chaque formulaire (input), soit la valeur name="***" et value="***"
Forcément, je ne peux pas faire un simple $nom_du_formulaire = $_POST["??????"];
J'ai bien essayé en modifiant name="'.$teste[id].'" par name="delete[]" puis ensuite un:
...mais sans "identifiant" pour associer $valeur à un id de ma table, je ne peux rien faire !
Un petit coup de main ne serait pas de refus svp
Merci
Je sèche sur la façon de procéder pour enregistrer en bd la valeur de plusieurs "input". En gros, je récupère la valeur d'un id qui correspond à une sous catégorie (ici sous_categorie_du_lien). Dans cette exemple, je veux modifier les valeurs du champ date_de_creation_du_lien correspondant à l'id transmit se trouvant dans le champ sous_categorie_du_lien.
---------Table LIEN_DU_SITE---------------------
id---sous_categorie_du_lien---titre_du_lien---date_de_creation_du_lien
-1--------1---------------------------titre 1-----------------------3------------
-2--------2---------------------------titre 2-----------------------0------------
-3--------1---------------------------titre 3-----------------------7------------
-4--------1---------------------------titre 4-----------------------5------------
- Code: Tout sélectionner
<?php
//On récupère l'id qui correspond à sous_categorie_du_lien
$nom_id_transmit=$_GET["id"];
echo '<form action="classement.php" method="post"><fieldset><legend>Modification</legend>';
include("data_bd.php");
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier data_bd.php.');
$query = mysql_query("SELECT id, sous_categorie_du_lien , titre_du_lien, date_de_creation_du_lien FROM LIEN_DU_SITE WHERE sous_categorie_du_lien =$nom_id_transmit ORDER BY date_de_creation_du_lien ASC");
while($teste = mysql_fetch_array($query))
{
echo ''.$teste[titre_du_lien].' : <input type="text" name="'.$teste[id].'" size="20" value="'.$teste[date_de_creation_du_lien].'"/><br/>';
}
mysql_close();
?>
<input name="Valider" value="Valider" type="submit">
</fieldset>
</form>
Jusque la, pas de soucis ... tout s'affiche comme je le souhaite.
La ou sa se gate, c'est pour récupérer les valeurs de chaque formulaire (input), soit la valeur name="***" et value="***"
Forcément, je ne peux pas faire un simple $nom_du_formulaire = $_POST["??????"];
J'ai bien essayé en modifiant name="'.$teste[id].'" par name="delete[]" puis ensuite un:
- Code: Tout sélectionner
foreach ($delete as $valeur){
echo ''.$valeur.'<br/>';
}
...mais sans "identifiant" pour associer $valeur à un id de ma table, je ne peux rien faire !
Un petit coup de main ne serait pas de refus svp
Merci
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: Comment modifier la valeur de plusieurs input en php?
j'ai pas tout compris.
La solution est peut être dans l'utilisation des tableaux :
tu parcours ensuite tes valeurs avec un :
La solution est peut être dans l'utilisation des tableaux :
- Code: Tout sélectionner
echo ''.$teste[titre_du_lien].' : <input type="text" name="valeurs['.$teste[id].']" size="20" value="'.$teste[date_de_creation_du_lien].'"/><br/>';
tu parcours ensuite tes valeurs avec un :
- Code: Tout sélectionner
foreach($_POST['valeurs'] as $id =>$valeur) {
...
}
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Comment modifier la valeur de plusieurs input en php?
Salut,
Dabord .. harffff ^^.
En gros, si je fais dans une boucle:
Je me retrouve avec plusieurs fois le même name pour différents input.
En gros sa donne sa comme résultat:
Donc, d'un côté je peux récupérer les valeurs (value="1",value="2",value="3") mais d'un autre, je ne peux pas les associer à un id ou nom pour ensuite faire un UPDATE en bd.
Tu me suis??
De même, si je fais dans une boucle :
Qui me donne comme résultat:
Il m'est impossible de faire:
..puisque mes différents champs de formulaire sont générés dynamiquement ...
Tu me suis toujours ??
Dabord .. harffff ^^.
En gros, si je fais dans une boucle:
- Code: Tout sélectionner
echo '<input type="text" name="delete[]" size="20" value="'.$teste[date_de_creation_du_lien].'"/><br/>';
Je me retrouve avec plusieurs fois le même name pour différents input.
En gros sa donne sa comme résultat:
- Code: Tout sélectionner
<input type="text" name="delete[]" size="20" value="1"/><br/>
<input type="text" name="delete[]" size="20" value="2"/><br/>
<input type="text" name="delete[]" size="20" value="3"/><br/>
Donc, d'un côté je peux récupérer les valeurs (value="1",value="2",value="3") mais d'un autre, je ne peux pas les associer à un id ou nom pour ensuite faire un UPDATE en bd.
Tu me suis??
De même, si je fais dans une boucle :
- Code: Tout sélectionner
echo '<input type="text" name="'.$teste[id].'" size="20" value="'.$teste[date_de_creation_du_lien].'"/><br/>';
Qui me donne comme résultat:
- Code: Tout sélectionner
<input type="text" name="1" size="20" value="1"/><br/>
<input type="text" name="2" size="20" value="2"/><br/>
<input type="text" name="3" size="20" value="3"/><br/>
Il m'est impossible de faire:
- Code: Tout sélectionner
$nom_du_formulaire1 = $_POST["1"];
$nom_du_formulaire2 = $_POST["2"];
$nom_du_formulaire3 = $_POST["3"];
..puisque mes différents champs de formulaire sont générés dynamiquement ...
Tu me suis toujours ??
-

zeb - WRInaute accro

- Messages: 4553
- Inscription: 5 Déc 2004
Re: Comment modifier la valeur de plusieurs input en php?
- Code: Tout sélectionner
foreach (array_keys(get_defined_vars()) as $key => $value){
if(is_array(${$value}) && $value=='_POST'){
foreach(${$value} as $keytab => $valuetab){
}
}
}
essaie de faire un echo de $keytab et $valuetab dans ce code tu devrais voir toutes tes POST s'afficher avec leur valeur.
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Comment modifier la valeur de plusieurs input en php?
forty : sans succès. J'ai le droit à une page blanche quand je fais :
Puis :
En faisant un echo sur $id ou sur $valeur ou sur $_POST['valeurs'], il n'y a rien.
zeb : Je ne comprend absolument pas ton code ^^ni comment "l'implanter" correctement. J'ai donc fais :
Suivit de :
Et il me ressort :
Je précise que dans mon teste, mon "input" contenue dans ma boucle me sort 6 résultats (ce qui est ok).
Pour ne pas vous induire en erreur sur mes explications, le résultat de ma boucle donne cela:
Pour ma boucle:
Résultat :
Merci de vos réponses
- Code: Tout sélectionner
echo ''.$teste[titre_du_lien].' : <input type="text" name="valeurs['.$teste[id].']" size="20" value="'.$teste[date_de_creation_du_lien].'"/><br/>';
Puis :
- Code: Tout sélectionner
foreach($_POST['valeurs'] as $id =>$valeur) {
...
}
En faisant un echo sur $id ou sur $valeur ou sur $_POST['valeurs'], il n'y a rien.
zeb : Je ne comprend absolument pas ton code ^^ni comment "l'implanter" correctement. J'ai donc fais :
- Code: Tout sélectionner
echo ''.$teste[titre_du_lien].' : <input type="text" name="valeurs['.$teste[id].']" size="20" value="'.$teste[date_de_creation_du_lien].'"/><br/>';
Suivit de :
- Code: Tout sélectionner
foreach (array_keys(get_defined_vars()) as $key => $value){
if(is_array(${$value}) && $value=='_POST'){
foreach(${$value} as $keytab => $valuetab){
echo $keytab;
echo $valuetab;
}
}
}
Et il me ressort :
valeurArrayValiderValider
Je précise que dans mon teste, mon "input" contenue dans ma boucle me sort 6 résultats (ce qui est ok).
Pour ne pas vous induire en erreur sur mes explications, le résultat de ma boucle donne cela:
Pour ma boucle:
- Code: Tout sélectionner
echo '<input type="text" name="valeur['.$teste[id].']" value="'.$teste[date_de_creation_du_lien].'" id="'.$teste[id].'"/>'.$teste[titre_du_lien].'<br/>';
Résultat :
- Code: Tout sélectionner
...
<input type="text" name="valeur[1]" value="0" id="1"/>blabla<br/>
<input type="text" name="valeur[3]" value="0" id="3"/>blabla<br/>
<input type="text" name="valeur[4]" value="0" id="4"/>blabla<br/>
<input type="text" name="valeur[5]" value="0" id="5"/>blabla<br/>
<input type="text" name="valeur[58]" value="0" id="58"/>blabla<br/>
<input type="text" name="valeur[60]" value="0" id="60"/>blabla<br/>
...
Merci de vos réponses
-

zeb - WRInaute accro

- Messages: 4553
- Inscription: 5 Déc 2004
Re: Comment modifier la valeur de plusieurs input en php?
essaie ça sur une page de test ça va t'aider :
- Code: Tout sélectionner
<?php
if(isset($_POST['Bouton_Valider'])){
foreach (array_keys(get_defined_vars()) as $key => $value){
if(is_array(${$value}) && $value=='_POST'){
foreach(${$value} as $keytab => $valuetab){
echo $keytab." -> ".$valuetab."<br/>\n";
}
}
}
}
?>
<form action="" method="post">
<fieldset>
<legend>Modification</legend>
<input type="text" name="input_1" value="0" id="1"/> bla bla<br/>
<input type="text" name="input_3" value="10" id="3"/> bla bla<br/>
<input type="text" name="input_4" value="20" id="4"/> bla bla<br/>
<input type="text" name="input_5" value="30" id="5"/> bla bla<br/>
<input type="text" name="input_6" value="40" id="6"/> bla bla<br/>
<input type="text" name="input_7" value="50" id="7"/> bla bla<br/>
<input name="Bouton_Valider" value="Valider" type="submit">
</fieldset>
</form>
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Jquery recuperer la valeur d'un input
- Javascript : Affichage valeur input variable
- Comment transmetre valeur d un prog a l autre en php..???
- réécrire des urls /index.php?page=$valeur en /valeur
- XMLreader : comment sortir les résultats valeur par valeur
- [PHP/MySQL] Excepter une valeur dans un requête SQL en PHP
- Ajax : Executer un code php via des boutons input
- comment teinter input et text area ?
- valeur (php) et checkbox
- Modifier la version de PHP
Consultez la description détaillée des produits ou services de Google suivants : Gmail Notifier
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


