Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Zaznaczenie optiona
user767
post 2.07.2011, 13:04:19
Post #1





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


Mam problem z zaznaczeniem opcji w liście select generując pola option funkcją.
W programowaniu strukturalnym szło to przez while i funkcję. A tutaj pokazuje mi
na liście tylko tą opcję, którą chcę znaleźć, a nie wszystkie.
Ma to być opcja np. edycji nazwy produktu z listy

  1. // $ile_jest - to mysql_num_rows
  2. // $aa = $nazwy[$i]; - tablica z wszystkimi nazwami z bazy jeden wymiar
  3. // $bb - to co chce zaznaczyć, czyli w przyszłości zapisane w bazie i pobrane do tablicy nazwy, ja wybrałem Monitor
  4.  
  5. $cc = Array
  6. (
  7. 1 => "Monitor",
  8. 2 => "Oplata za internet",
  9. 3 => "Produkt"
  10. );
  11.  
  12. $bb = $cc[1]; // mój monitor
  13.  
  14.  
  15. print $nowy_formularz->wybor_start('nazwa', 'opis','','','','180');
  16.  
  17. for($i=0;$i < $ile_jest;$i++){
  18.  
  19. while($i < $ile_jest){
  20. $aa = $nazwy[$i];
  21.  
  22.  
  23. function sprawdz($aa, $bb){
  24. if($aa == $bb) return 'selected';
  25. else return;
  26. }
  27. sprawdz($aa, $bb);
  28.  
  29. print $nowy_formularz->dodaj_opcje('hidden', $nazwy[$i],'',sprawdz($aa, $bb));
  30. }
  31. }
  32. print $nowy_formularz->wybor_koniec();

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post 2.07.2011, 13:53:26
Post #2





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




for($i=0;$i < $ile_jest;$i++){

while($i < $ile_jest){
$aa = $nazwy[$i];


function sprawdz($aa, $bb){
if($aa == $bb) return 'selected';
else return;
}
sprawdz($aa, $bb);

print $nowy_formularz->dodaj_opcje('hidden', $nazwy[$i],'',sprawdz($aa, $bb));
}
}

Wytłumacz mi proszę każdą linijkę tego kodu a potem całość co to ma robić. Czytam i czytam i jeszcze raz czytam i nic z tego nie kumam.
Szczególnie intryguje mnie pętla while w pętli for, która notabene zawiera ten sam warunek wykonania.
Oraz interesująca jest deklaracji funkcji w pętli.


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

"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
user767
post 2.07.2011, 14:00:54
Post #3





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


  1.  
  2. ///////////////////////////////////////////////////////////////////////////////
  3.  
  4.  
  5. $cc = Array
  6. (
  7. 1 => "Monitor",
  8. 2 => "Oplata za internet",
  9. 3 => "Produkt"
  10. );
  11.  
  12. $bb = $cc[1];
  13.  
  14. function sprawdz($nazwy, $bb){
  15. if($bb == $nazwy) return 'selected';
  16. else return;
  17. }
  18. sprawdz($nazwy, $bb);
  19.  
  20. print $nowy_formularz->wybor_start('nazwa', 'opis','','','','180'); /* dodanie selectu start_select($name,$label,$row='',$multiple='', $id='',$width) */
  21. for($i=0;$i < $ile_jest;$i++){
  22.  
  23. print $nowy_formularz->dodaj_opcje('hidden', $nazwy[$i],'',sprawdz($nazwy[$i]));
  24. }
  25.  
  26. print $nowy_formularz->wybor_koniec(); /* zamkniecie selectu */
  27. //////////////////////////////////////////////////////////////////////////////
  28.  
  29.  


Lista produktów jest, zaznacznia nie ma, w źródle nie ma ani selected, ani błędów, ponieważ obsługę błędów mam włączoną.
Próbuję znaleźć jak wykonać tą funkcję sprawdz(), ale nic nie mogę znaleźć.
To ma wstawić w listę optiony z nazwami z bazy oraz przyrównać i znaleźć tego, którego chce i zaznaczyć.

Ten post edytował user767 2.07.2011, 14:08:52
Go to the top of the page
+Quote Post
nospor
post 2.07.2011, 14:06:42
Post #4





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




1) Co to jest $nowy_formularz?
2) Jak wygląda funkcja $nowy_formularz->dodaj_opcje
3) Masz tablicę $nazwy? Bo w kodzie jej nie widzę, jedyną tablicę jaką widzę to $cc


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

"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
user767
post 2.07.2011, 14:19:55
Post #5





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


jest to funkcja do tworzenia listy select formularza klasy formularz_tworzenie
1) wywołanie metody klasy
2) public function dodaj_opcje($value,$label, $id, $sprawdz) { i tu podstawiam do html smile.gif }
3) tak, z bazy danych

  1. (
  2. [0] => Monitor
  3. [1] => Oplata za internet
  4. [2] => Monitor
  5. [3] => Oplata za internet
  6. [4] =>
  7. [5] => Produkt 2
  8. [6] => monitor
  9. [7] => Produkt 3
  10. [8] => 123
  11. [9] =>
  12. )


Go to the top of the page
+Quote Post
nospor
post 2.07.2011, 14:34:03
Post #6





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




ad1) $nowy_formularz to jest obiekt a nie żadne wywołanie metody klasy. Miałem na myśli co to za klasa.... dobra, nie ważne
ad2) Chodziło mi o funkcję a nie o jej pierwszą linijkę.

print $nowy_formularz->dodaj_opcje('hidden', $nazwy[$i],'',sprawdz($nazwy[$i]));
Przecież do sprawdz przekazujesz tylko jeden parametr. Jakim cudem ma ci to działać?


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

"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
user767
post 2.07.2011, 14:56:03
Post #7





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


jak wstawić w takim razie parametry po kolei z tablicy zamiast cała tablicę questionmark.gif
wydaje mi się, że ten kod jest błędny oneeyedsmiley02.png
Go to the top of the page
+Quote Post
nospor
post 2.07.2011, 15:02:29
Post #8





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




No jesli chcesz to porównywać do bb to masz jeszcze to bb dodać
  1. print $nowy_formularz->dodaj_opcje('hidden', $nazwy[$i],'',sprawdz($nazwy[$i],$bb));


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

"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
user767
post 2.07.2011, 16:20:06
Post #9





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


problem rozwiązany, jednak jest jedna drobna wada jeśli użytkownik zmieni opcję w selekcie i odświeży stronę ta opcja zostaje i nie wskakuje poprzednia. Obok mam zwykły select i wskakuje poprzednia.
Go to the top of the page
+Quote Post
nospor
post 2.07.2011, 18:43:59
Post #10





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




Na początku napisałeś
Cytat
ani błędów, ponieważ obsługę błędów mam włączoną.

Co rozumiesz pod pojęciem "włączona obsługa błędów"?

Bo jakbyś miał włączone wyświetlanie błędów, to byś dostawał WARNING dlatego, że nie dodałeś tego paramtru do funkcji sprawdz. Problem by był rozwiązany milion postów wcześniej.

Zapoznaj się z tym tematem
Temat: Jak poprawnie zada pytanie
włącz to wyświetlanie błędów oraz zastosuj się do innych wskazówek tam podanych.


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

"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
user767
post 3.07.2011, 17:44:22
Post #11





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


rozw.
  1. for($i=0;$i < $ile_jest;$i++){
  2. print $nowy_formularz->dodaj_opcje($tablica[$i]['id'],$tablica[$i]['nazwa'],$operacje->sprawdz($tablica[$i]['nazwa'],$zmienna));
  3. }


Ten post edytował user767 3.07.2011, 18:24:33
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 - 07:44