Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] Value pola tekstowego a PHP
Forum PHP.pl > Forum > Przedszkole
przemilke
Witam,

Mam problem z przekazaniem danej z pola tekstowego formularza 'prodQuantity' za pomocą onsubmit w formie. Oto kod:
  1. <form onsubmit="window.location.href='<?php echo "cart.php?action=add&p=$pdId&q=$prodQuantity"; ?>';" name="formAddToCart">
  2. <br />Ilość:&nbsp;
  3. <input type="text" name="prodQuantity" size="5" value="1" class="box">
  4. <input type="image" src="img/kup.jpg" style="width:103px;height:100px;" name="btnAddToCart" value="Do koszyka &gt;" class="addToCartButton">
  5. </form>


Według znalezionego tutoriala:
"Należy pamiętać o zdefiowaniu nazw wszystkich pól formularza z których skrypt ma skorzystać. Przykład:
<FORM ACTION=skrypt.php3 METHOD=POST>
<INPUT TYPE=TEXT NAME=tekst>
</FORM>
Napisanie skryptu obsługującego formularz jest bardzo proste. Właściwie większość pracy wykonuje za nas PHP - po prostu w skrypcie od razu będą dostępne zmienne o nazwach takich jak nazwy pól formularza, zawierające ich wartości:
echo($tekst); /* ta linia wyświetli zawartość
pola tekst z formularza */"

Dlaczego moja funkcja nie przekazuje parametru $prodQuantity mimo, że nadałem name pola tekstowego "prodQuantity"?
  1. <?php
  2. echo "cart.php?action=add&p=$pdId&q=$prodQuantity";
  3. ?>


Dziękuję za podpowiedzi (pewnie jakiś mój błąd w rozumowaniu)...
lilik
jak na moj gust to po pierwsze nie dales metody

i ja w ogole zrobil bym to tak

  1. <form method = "post" name="formAddToCart" action="cart.php">
  2. <br />Ilość:&nbsp;
  3. <input type="text" name="prodQuantity" size="5" value="1" class="box">
  4. <input type="hidden" name="action" value="add">
  5. <input type="hidden" name="p" value="<? echo $pdId; ?>">
  6. <input type="hidden" name="q" value="<? echo $prodQuantity; ?>">
  7. <input type="image" src="img/kup.jpg" style="width:103px;height:100px;" name="btnAddToCart" value="Do koszyka &gt;" class="addToCartButton">
  8.  
  9. </form>
przemilke
Dobra - przyznam, że na razie celowo nie podałem metody. Wcześniej miałem taki kod, który funkcjonował dobrze:

  1. <input type="image" src="img/kup.jpg" style="width:103px;height:100px;" onclick="window.location.href='<?php echo "cart.php?action=add&p=$pdId"; ?>';" name="btnAddToCart" value="Do koszyka &gt;" class="addToCartButton">


Jednak chciałem dodawać do koszyka od razu ilość produktu, dlatego stworzyłem pole tekstowe, a jak już stworzyłem pole tekstowe to musiałem musiałem stworzyć formularz (form). W skrypcie odbierającym uzależniłem już wszystko od zmiennej q (patrz mój pierwszy post). Nie wiem jak przekazać w nim ilosc produktu (prodQuantity). Zależy mi na tym, aby działało to przez onsubmit czyli niejako zachowało pierwotną formę funkcjonowania...
lilik
czyli rozumiem ze
  1. window.location.href='<?php echo "cart.php?action=add&p=$pdId&q=$prodQuantity"; ?>';

to niby reprezentuje to co user wpisze w formularzu ? a dopuki nie wpisze dofrmualrza to te zmienne sa puste ? to w takim razie ci sie nie uda bo php jest wykonywane po stronie serwera

czyli musisz troszke zmodyfikowac moj formularz usuwajac jedno niepotrzebne pole i zmiieniajac swoje pole prodQuantity na q a jesli chesz koniecznie to do przyisku dajesz onclick=submit.form
przemilke
Ok, trochę mnie zasmuciłeś i nie rozumiem teraz sensu przytoczonego powyżej tutoriala:
"Napisanie skryptu obsługującego formularz jest bardzo proste. Właściwie większość pracy wykonuje za nas PHP - po prostu w skrypcie od razu będą dostępne zmienne o nazwach takich jak nazwy pól formularza, zawierające ich wartości"

Czyli nie mogę przekazać w q danych z formularza? A tak ładnie działa, gdy q przypiszemy na sztywno (dodaje 3 produkty naraz):
  1. <form onsubmit="window.location.href='<?php echo "cart.php?action=add&p=$pdId&q=3"; ?>';" name="formAddToCart">
  2. <br />Ilość:&nbsp;
  3. <input type="text" name="prodQuantity" size="5" value="1" class="box">
  4. <input type="image" src="img/kup.jpg" style="width:103px;height:100px;" name="btnAddToCart" value="Do koszyka &gt;" class="addToCartButton">
  5. </form>


Po drugie na początku jeszt przypisane value="1" do prodQuantity
lilik
mozesz przekazac q metoda post badz get do scryptu w pliku cart.php besposrednio
tak jak tam napisales echo to nei zadziala bo to php a to sie wykonuje po stronie servera, mozna ew ajaxem sprobowac to zrobic

ale najprosciej zrobic to tak
  1. <form method = "post" name="formAddToCart" action="cart.php">
  2. <br />Ilość:&nbsp;
  3. <input type="text" name="q" size="5" value="1" class="box">
  4. <input type="hidden" name="action" value="add">
  5. <input type="hidden" name="p" value="<? echo $pdId; ?>">
  6. <input type="image" src="img/kup.jpg" style="width:103px;height:100px;" name="btnAddToCart" value="Do koszyka &gt;" class="addToCartButton">
  7. </form>


ja tez zaczolem robic sklep http://e-zywnosc.pl/ i do tego uzylem biblioteki advAJAX pod adresem http://advajax.anakin.us/index-pl.htm ja masz ale mozesz tez z powodzeniem z jQuery skorzystac
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.