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

Langage PHP Discussion :

[PHP-JS] Transfert de données


Sujet :

Langage PHP

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut [PHP-JS] Transfert de données
    Salut,

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <html>
    <? 
    $a = 1;
    $sql = "SELECT id_stock, article, libelle, stock FROM stock GROUP BY actif, article";
    $result=mysql_query($sql);
    ?>
    <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
    <table width="90%">
    	<tr>
    		<td colspan="4" width="100%" bgcolor="#3366FF" align="center">
    			<p class="titre_02">GESTION DU STOCK
    		</td>
    	</tr>
    	<tr>
    		<td colspan="4" width="50%" align="center">
    			<form name="formulaire" method="post" action="" onSubmit="return testsubmit()">
    		</td>
    	</tr>
    	<?php
    	while ($row=mysql_fetch_object($result)) {
    		if ($a%2 == 0)
    			{$couleur = "#FFE45E";}
    			else
    			{$couleur = "#FFF189";}
    	echo "<tr align=\"left\" bgcolor=\"".$couleur."\">";
    		echo "<td width=\"70%\">";
    			echo "<p class=\"TITRE_20\">".$row->article." - ".$row->libelle;
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<input align=\"center\" class=\"TITRE_20\" type=\"text\" name=\"qte\" size=\"5\">";
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<a href=\"gestion.php?w=2&id_stock=".$row->id_stock."\"><img border=\"0\" src=\"../images/signe_moins.png\"></a>";
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<a href=\"gestion.php?w=3&id_stock=".$row->id_stock."\"><img border=\"0\" src=\"../images/signe_plus.png\"></a>";
    		echo "</td>";
    	echo "</tr>";
    	$a = $a+1;}
    	?>
    	<tr>
    		<td colspan="3">
    			</form>
    		</td>
    	</tr>	
    </table>
    </body>
     
    </html>
    Mon problème est que je n'arrive pas à récupérer la valeur qte... Et je ne vois pas comment faire, alors je me tourne vers vous !!!
    Impossible de récupérer la moindre valeur sur la page suivante

    D'avance merci.

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Oula, tu m'as l'air de tout mélanger...

    La balise <a> sert a creer un lien. Ca n'a, de base, pas grand rapport avec les formulaires.
    Si j'ai bien compris du peu que j'ai regardé, tu veux afficher une quantité, un lien vers "plus" et un lien vers "moins" pour modifier la quantité.

    Là ou tu fais confusion, c'est que pour récuperer la valeur d'un formulaire, il faut "soumettre" celui ci. Or, avec ta balise <a> tu ne fais que "recharger la page".

    Pour ne pas trop modifier ton code, plusieurs solutions. Soit tu n'utilises pas de formulaire, et tu passes toutes tes variables (en l'occurence qte et si tu incrémentes ou tu décrémentes) dans ton lien. Ca n'est pas très propre et pas toujours faisable.
    Une seconde solution consiste à remplacer tes liens par des input type "button", auxquel tu vas rajouter un événement javascript (genre onclick : mets la variable caché à telle valeur, et fait le submit). A la récupération tu saura sur quel bouton tu as cliqué en lisant la variable cachée.
    Je t'aurai bien écrit le code, mais je n'ai plus la syntaxe en tête.

    Derniere solution, au lieu de faire un formulaire global, tu peux faire un formulaire à la place de chacun des liens. Qui contiendra l'id de ton objet dans la base et l'action que tu veux faire dessus (a savoir incrémenter ou décrémenter). Et tes liens seront remplacé par un bouton submit.

    Bref, voila un tas de piste, a toi de voir ^^
    Perso, j'ai une préférence pour la troisième méthode qui est certe plus lourde, mais ne necessite pas d'avoir du javascript coté client.

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    J'ai essayé avec des <input>, mais j'ai le même problème, je n'arrive pas à récupérer la qte... et cette valeur peut-être différente de 1.

  4. #4
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    Mais comment essayer-tu de recuperer cette valeur car pour l'instant je ne vois que de l'affichage mais aucun traitement

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Le code de ma seconde page est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?
    $id_stock = $_GET['id_stock'];
    $qte1 = $_POST['qte'];
     
    $sql_nombre = "SELECT stock, article FROM stock WHERE id_stock='$id_stock'";
    $result_nombre=mysql_query($sql_nombre);
    $row_nombre=mysql_fetch_object($result_nombre);
    $qte2 = $row_nombre->stock;
     
    $qte = $qte2 - $qte1;
     
    $sql_qte = "UPDATE stock SET stock.stock = '$qte' WHERE (stock.id_stock = '$id_stock')";
    $result_qte=mysql_query($sql_qte);
     
    ?>
    <html>
    <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
    <table width="90%">
    	<tr>
    		<td>
    			<p class="TITRE_20">
    			<?
    			echo "L'article ".$article." a été mis à jour, il reste : ".$qte;
    			?>
    		</td>
    	</tr>
    </table>
    </body>
     
    </html>
    Mais cela ne fonctionne pas...

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Il faut que tu places ta variable qte dans l'un de tes liens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"gestion.php?w=2&id_stock=".$row->id_stock."&qte=".$qte."')\">
    par exemple et récupérer dans les traitements avec $qte=$_GET['qte'].
    Car dans ton formulaire tu ne transmets jamais $qet aux traitements .
    Je veux dire soit tu le passes en POST et il te faut un bouton submit dans ton formulaire soit en GET et tu fais comme je t'ai montré ci-dessus.

  7. #7
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Mais la variable "Qte" provient de la page active. Elle est modifiée sur la page, et ensuite je veux la transférer sur l'autre page pour faire mon calcul.

  8. #8
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Relis mon post un peu plus haut, tu as toutes les solutions qu'il te faut. Ton problème vient du fait que tu melange un lien <a> avec un formulaire. Soit tu passe tout en <a>, soit tout en formulaire. Dans ton cas, je repete, la solution la plus simple est de faire un formulaire qui va remplacer chaque "<a>".

  9. #9
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Voici mon code avec la modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <html>
    <script language="javascript">
    function testsubmit() {
        if (document.formulaire.action=="") return false;
    return true ;
    }
    function gopage(page)
    {
    	variable = "&qte=" + document.getElementById("qte").value;
    	document.formulaire.action = page + variable;
        document.formulaire.submit();
    }
    </script>
    <? 
    $a = 1;
     
    $signe = $_GET['signe'];
    $id_stock = $_GET['id_stock'];
    $qte = $_GET['qte'];
     
    echo "Qte : ".$qte."<br>";
     
    if ($signe == 1)
    	{$sql_signe = "UPDATE stock SET stock.stock = (stock.stock - 1) WHERE (stock.id_stock = '$id_stock')";
    	$result_signe=mysql_query($sql_signe);}
    if ($signe == 2)
    	{$sql_signe = "UPDATE stock SET stock.stock = (stock.stock + 1) WHERE (stock.id_stock = '$id_stock')";
    	$result_signe=mysql_query($sql_signe);}
     
    $sql = "SELECT id_stock, article, libelle, stock FROM stock GROUP BY actif, article";
    $result=mysql_query($sql);
     
     
    ?>
    <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
    <table cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="90%">
    	<tr>
    		<td colspan="4" width="100%" bgcolor="#3366FF" align="center">
    			<p class="titre_02">GESTION DU STOCK
    		</td>
    	</tr>
    	<tr>
    		<td colspan="4" width="50%" align="center">
    			<form name="formulaire" method="post" action="" onSubmit="return testsubmit()">
    		</td>
    	</tr>
    	<?php
    	while ($row=mysql_fetch_object($result)) {
    		if ($a%2 == 0)
    			{$couleur = "#FFE45E";}
    			else
    			{$couleur = "#FFF189";}
    	echo "<tr align=\"left\" bgcolor=\"".$couleur."\">";
    		echo "<td width=\"70%\">";
    			echo "<p class=\"TITRE_20\">".$row->article." -<i> ".$row->libelle."</i>  - ".$row->stock;
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<input align=\"center\" class=\"TITRE_20\" type=\"text\" id=\"qte\" name=\"qte\" size=\"5\">";
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<input class=\"TITRE_20\" type=\"button\" value=\"VOIR\" onClick=\"gopage('gestion.php?w=1&id_stock=".$row->id_stock."&signe=1')\">";
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<input class=\"TITRE_20\" type=\"button\" value=\"VOIR\" onClick=\"gopage('gestion.php?w=1&id_stock=".$row->id_stock."&signe=2')\">";
    		echo "</td>";
    	echo "</tr>";
    	$a = $a+1;}
    	?>
    	<tr>
    		<td colspan="3">
    			</form>
    		</td>
    	</tr>	
    </table>
    </body>
     
    </html>
    Mais cela ne fonctionne pas !!! la valeur de la quantité "qte" contenue dans l'adresse ne fonctionne pas, elle reste vide. Sauf, si je mets la valeur dans la première de ma liste (issue d'une requête).

    Je ne sais pas si je suis bien clair, mon objectif est de récupérer la valeur la valeur "qte" qui n'est pas toujours sur la première ligne de mes données.

    Merci.

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Voici un exemple de ce que je veux faire :

    Pièce jointe 11552

  11. #11
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    je ne sais pas si j'ai bien compris tout ton probleme, mais si c'est le cas :

    si tu as trois champs "qte" ton script ne peut les différencier !
    ils doivent porter un nom différent, par exemple, etre créé dans une boucle avec une indexation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for ($i=0;$i<='ce que tu veux';$i++)
    {
    <input type="text" name="qte".[$i]>
    }
    ainsi dans ton exemple tu auras : qte[0] / qte[1] / qte[2] que tu récupèreras avec une boucle sur ta page suivante.

    et pour le lien, tu peux peut etre mettre un onclick="form.submit()" dans ta balise <a>

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    J'ai essayé ton explication cela donne le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <html>
    <? 
    $a = 1;
    $signe = $_GET['signe'];
    $id_stock = $_GET['id_stock'];
    $qte = $_GET['id_qte'];
    $val = $_POST[$qte];
     
    echo "Qte : ".$qte."<br>Val : ".$val."<br>&nbsp;<br>";
     
    if ($signe == 1)
    	{$sql_signe = "UPDATE stock SET stock.stock = (stock.stock - 1) WHERE (stock.id_stock = '$id_stock')";
    	$result_signe=mysql_query($sql_signe);}
    if ($signe == 2)
    	{$sql_signe = "UPDATE stock SET stock.stock = (stock.stock + 1) WHERE (stock.id_stock = '$id_stock')";
    	$result_signe=mysql_query($sql_signe);}
     
    $sql = "SELECT id_stock, article, libelle, stock FROM stock GROUP BY actif, article";
    $result=mysql_query($sql);
     
     
    ?>
    <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
    <table cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="90%">
    	<tr>
    		<td colspan="4" width="100%" bgcolor="#3366FF" align="center">
    			<p class="titre_02">GESTION DU STOCK
    		</td>
    	</tr>
    	<tr>
    		<td colspan="4" width="50%" align="center">
    			&nbsp;
    		</td>
    	</tr>
    	<?php
    	while ($row=mysql_fetch_object($result)) {
    		if ($a%2 == 0)
    			{$couleur = "#FFE45E";}
    			else
    			{$couleur = "#FFF189";}
    	echo "<tr align=\"left\" bgcolor=\"".$couleur."\">";
    		echo "<td width=\"70%\">";
    			echo "<p class=\"TITRE_20\">".$row->article." -<i> ".$row->libelle."</i>  - ".$row->stock;
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			$id_qte = "qte[".$row->id_stock."]";
    			echo "<p class=\"TITRE_20\">".$id_qte."<input align=\"center\" class=\"TITRE_20\" type=\"text\" name=\"qte[".$row->id_stock."]\" size=\"5\">";
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<a href=\"gestion.php?w=1&id_stock=".$row->id_stock."&signe=1&id_qte=".$id_qte."\"><img border=\"0\" src=\"../images/signe_moins.png\"></a>";
    		echo "</td>";
    		echo "<td width=\"10%\" align=\"center\">";
    			echo "<a href=\"gestion.php?w=1&id_stock=".$row->id_stock."&signe=2&id_qte=".$id_qte."\"><img border=\"0\" src=\"../images/signe_plus.png\"></a>";
    		echo "</td>";
    	echo "</tr>";
    	$a = $a+1;}
    	?>
    	<tr>
    		<td colspan="3">
    			</form>
    		</td>
    	</tr>	
    </table>
    </body>
     
    </html>
    Mais malheureusement cela ne donne rien de nouveau.

    Vois-tu où j'ai pu faire une erreur.

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

Discussions similaires

  1. Transfert de données entre java et php
    Par grafistolage dans le forum Langage
    Réponses: 2
    Dernier message: 08/10/2009, 14h23
  2. Jquery,Ajax,PHP et transfert de donnée
    Par Samolo dans le forum jQuery
    Réponses: 2
    Dernier message: 14/09/2009, 05h36
  3. Protection du transfert de donnée Flash / PHP
    Par mims1664 dans le forum Dynamique
    Réponses: 1
    Dernier message: 04/08/2009, 14h41
  4. Transfert de données entre java et php
    Par grafistolage dans le forum Applets
    Réponses: 0
    Dernier message: 15/04/2009, 10h04
  5. [PHP - JS]Ouverture fenetre confirm() et transfert de données pHp
    Par M@t2802 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/08/2007, 13h59

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