IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire multiligne / paramètres [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut Formulaire multiligne / paramètres
    Bon cette fois ci je cherche peut être une idée différente de ce à quoi je penses mais voici le problème en gros où il se situe,

    J'ai une liste de produit X dans une base de données mySQL que je prend par une requête. J'affiche les résultats sans problèmes, avec sur chaque ligne du formulaire, la désignation d'un produit Y, en champ hidden, son ID et un input pour saisir la quantitée voulu. Ensuite à la fin du formulaire (hors boucle donc c'est plus pratique) 1 input type submit.

    Problème : comment traiter cette commande pour en faire une variable de toutes les lignes ? avec une méthode type POST j'ai toujours le dernier résultat (forcément le name de l'input boucle et reste le même), j'ai donc essayé de faire un nom dynamique avec produit suivit de l'id mais ça ne fonctionne pas apparement.
    Donc au final après traitement, toute les lignes où une quantitée est entrée, je voudrait pouvoir faire une variable de type $cmd=[ID1,qty1|ID3,qty3 ...]

    Y a-t-il une solution plus simple pour ce genre de problème car ça m'as l'air d'être encore un peu trop compliqué pour ce que je cherche à faire.

  2. #2
    Membre chevronné Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Par défaut
    creer une variable ... $$var ca peut servir ;-)

    sinon on peut générer des nom pour un formulaire, ca ne pose pas de probleme
    faudra ensuite boucler sur le $_POST ou get pour recuperer tte tes variables.

  3. #3
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    comme le propose XtofRoland, tu fais une boucle des données POST ou GET. Et si je comprends bien, tu veux les mettre dans une chaine de caractere unique? si c'est le cas dans la boucle tu concatene au meme string toutes les valeurs

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    Je vais mettre un peu de code peut être verra-tu la faute dans la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $rs=mysql_query("SELECT * FROM ".$_SESSION['ta_articles']." WHERE 1");
    echo ("<form method=post name=test action=listcat.php >");
    $count=0;
    while ($rs_fa=mysql_fetch_array($rs))
    	{
    	[code]echo ("<label> ".$rs_fa[$_SESSION['ch_articlecode']]."<input type=hidden name=articleid'".$count."' value=".$rs_fa[$_SESSION['ch_articlecode']]."></label>");[/code]
    	echo ("<input type=text name=qty>");
    	echo ("<br/>");
    	$count = $count + 1;
    	}
    echo ("<input type=submit value=go>");
    echo ("</form>");
    Voila pour ce qui es de l'affichage, donc ici le champ hidden (le numéro de la ligne en quelque sort) se rajouter au nom articleid pour devenir alors articleid0 par exemple donc si je fait un echo $_POST['articleid0'] ça devrait me donner les infos de la 1ière ligne, hors ça ne marche pas et ça ne me parrait pas terrible comme manière. Autre chose a laquelle j'avait pensé mais que je n'ai pas réussit à faire fonctionner serait de faire un $_POST['articleid[0]'] donc par tableau mais je ne sait pas si la méthode POST accepte de transmettre des données par tableau donc dans le code au lieu d'etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ("<label> ".$rs_fa[$_SESSION['ch_articlecode']]."<input type=hidden name=articleid'".$count."' value=".$rs_fa[$_SESSION['ch_articlecode']]."></label>");
    ça donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ("<label> ".$rs_fa[$_SESSION['ch_articlecode']]."<input type=hidden name=articleid[".$count."] value=".$rs_fa[$_SESSION['ch_articlecode']]."></label>");
    mais ça ne fonctionne pas non plus.
    Erreur de synthaxe ou juste utilisation impossible telle quelle ?

    Pour l'affiche j'ai mit pour tester avant de vraiment développer la solution ce type d'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (isset ($_POST['qty']) && isset($_POST['articleid']))
    	{
    	for ($i=0;$i<$count;$i=$i+1)
    		{
    		echo ($_POST['articleid[$i]']);
    		echo (" X ");
    		echo ($_POST['qty']);
    		echo ("<br/>");
    		}
    	}

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Par défaut
    A force de persévérence, j'ai fini par trouver une solution alors ici parti affichage après modification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (isset ($_POST['qty']) && isset($_POST['articleid']))
    	{
    	$ar=$_POST['articleid'];
    	$arqty=$_POST['qty'];
    	for ($i=0;$i<=$count+1;$i=$i+1)
    		{
    		echo ($ar[$i]);
    		echo (" X ");
    		echo ($arqty[$i]);
    		echo ("<br/>");
    		}
    	}
    Et pour l'affichage avant et pour modification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $rs=mysql_query("SELECT * FROM ".$_SESSION['ta_articles']." WHERE 1");
    echo ("<form method=post name=test action=listcat.php >");
    $count=0;
    while ($rs_fa=mysql_fetch_array($rs))
    	{
    	echo ("<label> ".$rs_fa[$_SESSION['ch_articlecode']]."<input type=hidden name=articleid[$count] value=".$rs_fa[$_SESSION['ch_articlecode']]."></label>");
    	echo ("<input type=text name=qty[$count]>");
    	echo ("<br/>");
    	$count = $count + 1;
    	}
    echo ("<input type=submit value=go>");
    echo ("</form>");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer un formulaire en paramêtre
    Par tribaleur dans le forum VBA Access
    Réponses: 5
    Dernier message: 21/02/2008, 10h41
  2. Action d'un formulaire avec paramètres?
    Par Prosis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/11/2007, 23h06
  3. Réponses: 2
    Dernier message: 25/07/2007, 11h24
  4. [2.0] Formulaire et paramètres
    Par eraim dans le forum ASP.NET
    Réponses: 5
    Dernier message: 29/01/2007, 08h46
  5. Réponses: 8
    Dernier message: 24/11/2006, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo