Question con... :-\ [Réglé]

Question con... :-\ [Réglé] - PHP - Programmation

Marsh Posté le 12-05-2005 à 16:29:05    

Désolé pour le titre mais je ne savais pas quoi mettre.
J'ai un petit soucis (qui m'ennerve...)
 

Code :
  1. echo "<select name=\"qte\">";
  2. for($i=0;$i<$row[3]+1;$i++){
  3. echo "  <option value=\"$i\">$i</option>";
  4. }
  5. echo "</select>";
  6. ?>
  7. <td>
  8. <a href=<?php echo"\"ajouterAuPanier.php?id=$row[0]&sid=$sid&q=$qte\">$acheter";?>
  9. </a>
  10. </td>


 
Ce code affiche la quantitée d'article en stock (pour le caddie d'un catalogue) qui se situe dans une base de données.
Je fais donc afficher tous les chiffres de 0 jusqu'à la quantitée donnée de l'article.
Et j'ai un lien pour mettre l'article dans le caddie avec sa quantitée, et le problème c'est que je n'arrive pas à mettre dans l'adresse la quantitée choisie. C'est à dire que si je choisis "3" pour la quantitée, il me faut qu'il me pointe vers le lien suivant:
ajouterAuPanier.php?id=IdDeLarticle&sid=IdSession&q=QuantitéeVoulu\">$acheter";
Or je n'arrive pas à afficher la quantitée voulu.
 
Qq1 a t'il une solution?
 
Merci d'avance


Message édité par denis_de_strasbourg le 17-05-2005 à 11:41:58
Reply

Marsh Posté le 12-05-2005 à 16:29:05   

Reply

Marsh Posté le 12-05-2005 à 16:31:18    

et il sort d'où $qte ??

Reply

Marsh Posté le 12-05-2005 à 16:35:20    

Relie toi un minimum :/ ton <a> est une horreur ...
De plus $qte n'est pas affectée dans le bout de code que tu nous montres donc ce n'est pas tres pertinant !
 
echo "<a href=\"ajouterAuPanier.php?id=".$row[0]."&sid=".$sid."&q=".$qte."\">".$acheter."</a>";


Message édité par afbilou le 12-05-2005 à 16:36:00
Reply

Marsh Posté le 12-05-2005 à 16:47:32    

afbilou a écrit :

echo "<a href=\"ajouterAuPanier.php?id=".$row[0]."&sid=".$sid."&q=".$qte."\">".$acheter."</a>";



si tu vas dans ce sens, ya plus efficace :

echo '<a href="ajouterAuPanier.php?id=',$row[0],'&sid=',$sid,'&q=',$qte,'">',$acheter,'</a>';


- les virgules evitent à echo de créer une variable temporaire en memoire
- les simple quotes sont plus rapides (pas d'interpretation des variables)
- plus efficace mais pas très lisible par contre
 

Reply

Marsh Posté le 12-05-2005 à 16:51:26    

A wé sympathique :)
Mais ca cree pas un retour a la ligne entre chaque "," ?
(Ca ferait un code HTML dificile a lire ^^)


Message édité par afbilou le 12-05-2005 à 16:51:59
Reply

Marsh Posté le 12-05-2005 à 16:53:37    

afbilou a écrit :

Mais ca cree pas un retour a la ligne entre chaque "," ?


non, c'est comme si c'était une suite d'echo (donc pas de bufferisation)
(perso j'utilise rarement cette syntaxe, je la trouve illisible  :whistle:)

Reply

Marsh Posté le 12-05-2005 à 17:21:54    

Désolé j'avais oublié de mettre la 1ère ligne du code...
Le $qte, c'est justement à cet endroit que je ne sais pas quoi mettre. C'est juste çà mon problème.

Reply

Marsh Posté le 12-05-2005 à 17:26:30    

[:al zheimer]

Reply

Marsh Posté le 12-05-2005 à 17:34:34    

J'avais essayé avec cette ligne:
$qte=$_POST["qte"];
Mais rien...  :fou:

Reply

Marsh Posté le 12-05-2005 à 17:39:13    

Ce serait pas plutôt un truc du genre:
 

Code :
  1. echo "<form action=\"ajouterAuPanier.php\" method=\"post\">
  2. echo "<select name=\"qte\">";
  3. for($i=0;$i<$row[3]+1;$i++){
  4.   echo "        <option value=\"$i\">$i</option>";
  5. }
  6. echo "</select>";
  7. echo "</form>";

Reply

Marsh Posté le 12-05-2005 à 17:39:13   

Reply

Marsh Posté le 12-05-2005 à 17:50:02    

Non çà ne marche pas..  :??:  
J'ai fais affiché la valeur dans ajouterAuPanier.php et elle ne me retourne rien.

Reply

Marsh Posté le 12-05-2005 à 18:03:20    

c le pb classique du select :)
là il faut que tu fasses un bout de javascript pour obtenir la quantité effectivement sélectionnée ...
ton select est un objet manipulable en javascript,  
tu dois poster le résultat de l'évaluation javascript de
 
tonformulaire.qte.options[tonformulaire.qte.selectedindex].value

Reply

Marsh Posté le 12-05-2005 à 18:09:16    

Euh... je ne connais vraiment rien au javascript...  :sweat:  
Tu pourrais me montrer comment comment on l'écrit stp?
 
Ce serait fort sympathique

Reply

Marsh Posté le 13-05-2005 à 10:41:15    

si tu fais du php il FAUT que tu fasses du javascript, t'auras pas le choix ..... google est ton ami !

Reply

Marsh Posté le 13-05-2005 à 10:49:50    

denzz a écrit :

c le pb classique du select :)
là il faut que tu fasses un bout de javascript pour obtenir la quantité effectivement sélectionnée ...
ton select est un objet manipulable en javascript,  
tu dois poster le résultat de l'évaluation javascript de
 
tonformulaire.qte.options[tonformulaire.qte.selectedindex].value

Hmmm ? J'ai jamais eu de probleme avec mes selects moi ...
 

denzz a écrit :

si tu fais du php il FAUT que tu fasses du javascript, t'auras pas le choix ..... google est ton ami !

Hein ? Depuis quand JavaScript est devenu indispensable pour php ? Php c'est cote serveur, JavaScript cote client, j'ai un peu de peine a voir le rapport...


Message édité par cerel le 13-05-2005 à 10:51:19
Reply

Marsh Posté le 13-05-2005 à 10:53:12    

bon bah je me tais et je sors ..
(franchement si ta déjà développé un site en PHP sans une ligne de Javascript.. envoie l'url :)

Reply

Marsh Posté le 13-05-2005 à 11:13:06    

javascript n'est pas du tout obligatoire . Si ton site est en php et basé aussi sur javascript et que le mec le désactive, tu as pas l'air d'un con. Ce que tu peux faire avec le javascript ce sont des améliorations mais s'il est désactivé, ces opérations seront faisables d'une autre manière. C'est ca pour moi l'utilité du javascript.

Reply

Marsh Posté le 13-05-2005 à 11:24:59    

Ben... comment je résouds mon problème alors? :??:

Reply

Marsh Posté le 13-05-2005 à 11:28:32    

soju a écrit :

si tu vas dans ce sens, ya plus efficace :

echo '<a href="ajouterAuPanier.php?id=',$row[0],'&sid=',$sid,'&q=',$qte,'">',$acheter,'</a>';


- les virgules evitent à echo de créer une variable temporaire en memoire
- les simple quotes sont plus rapides (pas d'interpretation des variables)
- plus efficace mais pas très lisible par contre


Y'a aussi plus valide :

echo '<a href="ajouterAuPanier.php?id=',$row[0],'&amp;sid=',$sid,'&amp;q=',$qte,'">',$acheter,'</a>';


N'oublions pas que dans l'attribut href, certains caractères genre <, > et & doivent être remplacées par leur entité ;)

Reply

Marsh Posté le 13-05-2005 à 11:29:34    

denzz a écrit :

c le pb classique du select :)
là il faut que tu fasses un bout de javascript pour obtenir la quantité effectivement sélectionnée ...
ton select est un objet manipulable en javascript,  
tu dois poster le résultat de l'évaluation javascript de
 
tonformulaire.qte.options[tonformulaire.qte.selectedindex].value


Quel problème du select ???

Reply

Marsh Posté le 13-05-2005 à 11:29:57    

denzz a écrit :

si tu fais du php il FAUT que tu fasses du javascript, t'auras pas le choix ..... google est ton ami !


Bzzzzt ! Erreur :D Ne jamais reposer sur du JS ;)

Reply

Marsh Posté le 13-05-2005 à 11:42:45    

FlorentG a écrit :

N'oublions pas que dans l'attribut href, certains caractères genre <, > et & doivent être remplacées par leur entité ;)


oui bien vu  :jap:  

Reply

Marsh Posté le 13-05-2005 à 20:44:16    

Comment faire ?  :cry:  :cry:  :cry:  :cry:

Reply

Marsh Posté le 13-05-2005 à 21:42:24    

FlorentG a écrit :

Y'a aussi plus valide :

echo '<a href="ajouterAuPanier.php?id=',$row[0],'&amp;sid=',$sid,'&amp;q=',$qte,'">',$acheter,'</a>';


N'oublions pas que dans l'attribut href, certains caractères genre <, > et & doivent être remplacées par leur entité ;)


et plus lisible (j'espère que j'vais pas dire de connerie  :D )
 

Code :
  1. <a href="ajouterAuPanier.php?id=<?= $row[0] ?>&amp;sid=<?= $sid ?>&amp;q=<?= $qte ?>" title="ajouter au panier">
  2. <?= $acheter ?></a>


enfin, moi, je préfère lire ça.  :hello:  


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 13-05-2005 à 22:10:00    

Pourquoi tout le monde me re écrit mon code du lien????  :??:  
 
C'est la valeur de $qte que je n'arrive pas à récupérer. Je veux que quand je sélectionne quantité 2 que $qte=2. Or je n'arrive pas. Comment faire?

Reply

Marsh Posté le 13-05-2005 à 22:13:25    

faudrait peut etre revoir les formulaires....
faut pas le rajouter dans le querystring !! il sera dans $_POST...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 13-05-2005 à 22:33:43    

Comment on fait alors?

Reply

Marsh Posté le 13-05-2005 à 23:02:00    

Code de Jeff@be 1 poil retouché

Code :
  1. <form action="ajouterAuPanier.php" method="post">
  2. <input type="hidden" name="id" value="<?= $row[0] ?>" />
  3. <input type="hidden" name="sid" value="<?= $sid ?>" />
  4. <select name="q">
  5. <? for($i=0;$i<$row[3]+1;$i++) {?>
  6.   <option value="<?= $i ?>"><?= $i ?></option> 
  7. <? } ?>
  8. </select>
  9. <input type="submit" value="<?= $acheter ?>" name="acheter"/> 
  10. </form>


J'ai pas compris d'où il vient ton $qte et ce que tu veux en faire  :heink:  $qte = $q non ? (cf le liens...) donc autant mettre envoyer la valeur du select.
 
- j'ai pas du comprendre la question en fait -


Message édité par zapan666 le 13-05-2005 à 23:02:59

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 13-05-2005 à 23:22:56    

En fait je veux tout simplement récupérer la valeur qte de mon select.
 
Voici une copie d'écran de la page (pour se faire une idée).
 
http://projetcap.free.fr/screens/2.jpg

Reply

Marsh Posté le 14-05-2005 à 00:07:38    

Je veux que quand je clique sur mon lien "réserver" il pointe vers:
 
ajouterAuPanier.php?id=Id_article&sid=Id_Session&q=Quantitée_préalablement_sélectionnée
 
Voilà, je veux donc pouvoir récupérer la valeur du select.

Reply

Marsh Posté le 14-05-2005 à 21:27:53    

Pas possible sans passer par un js.
 
En revanche ce que tu peux faire c'est faire un "vrai" formulaire. Avec un vrai bouton submit...

Reply

Marsh Posté le 14-05-2005 à 22:05:51    

Non mais c'est bon, c'est réglé (c'est marqué en titre).
Mais merci quand même. J'ai utilisé un bouton submit.
 
A+

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed