Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Menu rozwijane - ilosc
wespazjon
post 3.09.2014, 16:11:53
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.08.2014

Ostrzeżenie: (0%)
-----


Mam w skrypcie ktory chce przerobic menu rozwijane - ilosc przedmiotow (jakie chce zamowic).
W menu tym dostepny jest wybor od 1 do 20 sztuk - problem polega na tym, ze nie ma to zadnego zwiazku ze stanem magazynowym produktu.
Nabywca moze zakupic 20 produktow mimo iz na stanie sa np. 2.

  1. echo '<select name="quantity" id="quantity" class="quantity">
  2. <option value="1" selected>1</option>
  3. <option value="2">2</option>
  4. <option value="3">3</option>
  5. <option value="4">4</option>
  6. <option value="5">5</option>
  7. <option value="6">6</option>
  8. <option value="7">7</option>
  9. <option value="8">8</option>
  10. <option value="9">9</option>
  11. <option value="10">10</option>
  12. <option value="11">11</option>
  13. <option value="12">12</option>
  14. <option value="13">13</option>
  15. <option value="14">14</option>
  16. <option value="15">15</option>
  17. <option value="16">16</option>
  18. <option value="17">17</option>
  19. <option value="18">18</option>
  20. <option value="19">19</option>
  21. <option value="20">20</option></select>


ilosc produktow znajduje sie w zmiennej $data[5]
Czy musialbym to zrobic na zasadzie:

if $data[5] == 1 i tu dodawac te pola:

echo '<select name="quantity" id="quantity" class="quantity">
<option value="1" selected>1</option>
</select>

Czy mozna by to zrobic w jakiejs madrzejszej formie?

Ten post edytował wespazjon 3.09.2014, 16:19:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nospor
post 3.09.2014, 16:59:19
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




FORem wygeneruj tylko tyle option, jaki masz max w $data[5]


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wespazjon
post 3.09.2014, 18:42:02
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.08.2014

Ostrzeżenie: (0%)
-----


No moglbym zrobic for-em.
Nie wiem czy to dobrze ogarniam ale:

  1. echo '<select name="quantity" id="quantity" class="quantity">
  2. for($liczbaproduktow=0;$liczbaproduktow<=$data[5];$liczbaproduktow++)
  3. {
  4. moje instrukcje
  5. }


Dobra mialbym tu petle for ale jak to zrobic z select - czy cos takiego?

  1. {
  2. echo '<option value="';
  3. echo $liczbaproduktow;
  4. echo '">';
  5. echo $liczbaproduktow;
  6. echo "</option>";
  7.  
  8. }


Czyli razem mialoby to tak wygladac?

  1. echo '<select name="quantity" id="quantity" class="quantity">
  2. for($liczbaproduktow=0;$liczbaproduktow<=$data[5];$liczbaproduktow++)
  3. {
  4. echo '<option value="';
  5. echo $liczbaproduktow;
  6. echo '">';
  7. echo $liczbaproduktow;
  8. echo "</option>";
  9. }


Ten post edytował wespazjon 3.09.2014, 18:42:41
Go to the top of the page
+Quote Post
nospor
post 3.09.2014, 18:54:09
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




FOR ma byc kodem php a nie tekstem w ECHO.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wespazjon
post 3.09.2014, 20:14:00
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.08.2014

Ostrzeżenie: (0%)
-----


Te pierwsze echo jest wyciete na zywca ze skryptu - do czegos w nim sluzy.

Niestety ten skrypt jest strasznie nie czytelny i to zarowno w edytorze tekstu jak i w bluefish.

To przyklad z ktorego wycialem ten fragment z produktami:

Przyklad kodu

Tak wyglada caly skrypt i w nim szukam "baboli"
Go to the top of the page
+Quote Post
nospor
post 3.09.2014, 20:23:14
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ja nie powiedziale, ze to ECHO niczemu nie sluzy... Ja powiedzialem, ze FOR ma byc poza ECHO a nie w ECHO.... jak FOR bedzie w ECHO to bedzie traktowany jako tekst a nie jako komenda php.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wespazjon
post 3.09.2014, 22:09:52
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.08.2014

Ostrzeżenie: (0%)
-----


Przegladalem forum - znalazlem dosc podobny temat - wyswietlanie minut w polu select:

  1. for ($i = 0; $i <= 59; $i++) {
  2. if ($i%5==1) { // % to reszta z dzielenia tzw. modulo
  3. $liczba = ($i < 10) ? '0'.$i : $i;
  4.  
  5. echo '<option value="'.$liczba.'">'.$liczba.'</option>';
  6. }
  7. }


Jak widac realizacja za pomoca funkcji echo.

Nie jestem biegly w PHP dlatego tez pisze w dziale przedszkole - nie musze miec gotowej odpowiedzi ale jakas mala podpowiedz smile.gif
Bede pisal ten temat az znajde rozwiazanie problemu he he
Go to the top of the page
+Quote Post
nospor
post 4.09.2014, 06:45:48
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jak widac realizacja za pomoca funkcji echo.
Zacznij wkoncu czytac ze zrozumieniem.... Ja nie mowie ze nie masz uzywac ECHO w FOR.... Ja mowie, ze FOR nie moze byc tekstem w ECHO, co do tej pory miales :/

  1. echo 'blabla //tutaj nie zamknales tekstu dla ECHO przez co wszystkie inne ponizej leci jako tekst w echo
  2. FOR blabla //ten FOR leci jako tekst w echo... caly czas ci o tym mowie :/

Tutaj masz FOR w tekscie ECHO, Tak nie moze byc! Tlumacze ci to od X postow....

Tak ma byc:
  1. echo 'blabla'; //tu zamykasz tekst echo
  2. FOR //tutal lecisz sobie FORem poza echo i w tym for juz jako komendy mozesz miec echo, a nawet musisz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wespazjon
post 4.09.2014, 09:33:38
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.08.2014

Ostrzeżenie: (0%)
-----


No nie wiem czy dobrze ujalem ten wycinek kodu - moze wycialem go za duzo lub za malo - tu jest jego wieksza czesc.
Jak widac przed pierwsza opcja select znajduje sie opcja echo - tak jak wczesniej to podalem.

echo '<td align="right"><span class="itemtext">'.$lang['quantity'].':</span></td>'; echo '<td>'; echo '<select name="quantity" id="quantity" class="quantity"><option value="1" selected>1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option></select>'

Teraz jak ta opcja bedzie nie poprawna to jak zrobic ja poprawna.

To ta opcja bedzie dzialac czy raczej nie powinna?

  1. [b]echo[/b] '<select name="quantity" id="quantity" class="quantity">
  2. for($liczbaproduktow=0;$liczbaproduktow<=$data[5];$liczbaproduktow++)
  3. {
  4. echo '<option value="';
  5. echo $liczbaproduktow;
  6. echo '">';
  7. echo $liczbaproduktow;
  8. echo "</option>";
  9. }


Czy moze skrocic kod w nawiasach do postaci:

  1. echo '<option value="'.$liczbaproduktow.'">'.$liczbaproduktow.'</option>';


i to po prostu tyle.

Wchodzi tu problem o ktorym wspomniales co z tym echo?

Ten post edytował wespazjon 4.09.2014, 09:34:20
Go to the top of the page
+Quote Post
nospor
post 4.09.2014, 09:36:05
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez ci napisalem, podalem nawet na przykladowym kodzie, ze masz zamknac ECHO zanim wejdziesz w FOR... Staraj sie czytac i analizowac to co ci podają

NIe:
echo '<select name="quantity" id="quantity" class="quantity">

a:
echo '<select name="quantity" id="quantity" class="quantity">';//TU JEST ZAMKNIECIE ECHO. Pisalem o tym na innym przykladzie w poprzednim poscie
//i dopiero teraz moze leciec sobie FOR.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wespazjon
post 4.09.2014, 10:08:11
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.08.2014

Ostrzeżenie: (0%)
-----


Dobrze masz racje.

Podmienilem ten kod - nie pokazuje kompletnie zadnego bledu ale nie wyswietla tez calego produktu - tak jakby cala biblioteka wyswietlania produktu przestala dzialac sad.gif

  1. echo '<td align="right"><span class="itemtext">'.$lang['quantity'].'
  2. :</span></td>'; echo '<td>'; [b]echo '<select name="quantity" id="quantity" class="quantity">;//
  3. for($liczbaproduktow=0;$liczbaproduktow<=$data[5];$liczbaproduktow++)
  4. {echo '<'<option value="'.$liczbaproduktow.'">'.$liczbaproduktow.'</option>';}'
  5. ;[/b] echo '<input type="hidden" name="product" value="'.$encode.'">'
  6. ; echo '<input type="hidden" name="price" value="'.$data[3].'">


W skrypcie jest to jedna linijka - tu podzielilem tylko tak by sie zmiescilo na stronie.
Go to the top of the page
+Quote Post
nospor
post 4.09.2014, 10:13:13
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




facepalmxd.gif
napisalem ci jak ma wygladac ta jedna linijka.... nawet nie potrafisz tego poprawnie skopiowac :/

Stary, Tobie nie da sie pomoc, bo nawet podanego gotowca źle wklejasz...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Turson
post 4.09.2014, 10:33:12
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Cytat
nie pokazuje kompletnie zadnego bledu

Proponuję włączyć error_reporting
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:51