Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> edycja formularza
peklo
post
Post #1





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


mam pytanie odnośnie edycji formularza.
Gdy chcę wyświetlić dane które zostały wprowadzone do formularza to grupuje wyniki i jest wszystko ok. Wyświetla się jak trzeba. Mam problem z edycją pól formularza. i tu pytanie czy też musze grupować wyniki?
Teraz mam zgrupowane i jak zrobię echo wyświetla wszystko dobrze, natomiast jak chcę edytować pola checkbox to mi je dubluje. Przykładowy kod-powinno się zazanczyć A,B,C

  1. <?php
  2. foreach ($ogloszenia['pjk'] as $pj){
  3. ?>
  4. <input name='id_prawo_jazdy[]' type='checkbox' value='1' <?php if ($pj['id_prawo_jazdy'] == 1) {echo 'checked';} ?>> a
  5. <input name='id_prawo_jazdy[]' type='checkbox' value='2' <?php if ($pj['id_prawo_jazdy'] == 2) {echo 'checked';} ?>> b
  6. <input name='id_prawo_jazdy[]' type='checkbox' value='3' <?php if ($pj['id_prawo_jazdy'] == 3) {echo 'checked';} ?>> c
  7. <?php
  8. }
  9. ?>


i się zaznacza ale dubluje wszystko x 3. I mam tak
w pierwszym zaznacza a, w drugim b,w trzecim c. Co ribię nie tak?

Ten post edytował peklo 21.03.2014, 12:14:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





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




Przeciez $ogloszenia['pjk'] zawiera dane do generowania checkboxow wiec masz w tej petli generowac jeden chceclbox z wartosciami z tej tablicy anie trzy... nic dziwnego ze ci duplikuje
Go to the top of the page
+Quote Post
peklo
post
Post #3





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


aaaaaa widzisz wiedziałem że coś skopałem (IMG:style_emoticons/default/smile.gif)
Jeszcze będe mieć do Ciebie pytanko odnośnie pobrania do select ale to pewnie póxniej.dzieki

a zaraz zaraz coś sobie przypomniałem. Pętla pobiera mi 3 pola. Ale w trakcie wypełniania formularza mam tych powiedzmy pól 15. I teraz chcę sobie dołożyć lub odjąć te checkbox. Jak sobie z tym poradzić?
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




No to masz iterowac po tej petli, ktora ma wszystko. A to co masz teraz $ogloszenia['pjk'] pewnie zawiera tylko info o zaznaczonych
Go to the top of the page
+Quote Post
peklo
post
Post #5





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


no ta pętla dokładnie zawieera tylko te zaznaczone. To jak teraz zrobić żeby pobrało mi wszystkie checbox ale nie dublowało mi tych z petli które są zaznaczone. nie wiem czy wiesz o co mi chodzi
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




Juz ci mowilem: iterowac masz po glownej petli. To ona bedzie generowac checkbox. Zas czy checkbox jest zaznaczyny czy nie to masz sprawdzac w tej malej tablicy. Ale tytlko sprawdzac a nie generowac caly checkbox
Go to the top of the page
+Quote Post
peklo
post
Post #7





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


a czy selecta mam zrobic takiego samego do wyswietlania podgladu jak i do edycji?
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




PObierajacego wszytkie prawa jazdy dostepne? No raczej tak
Go to the top of the page
+Quote Post
peklo
post
Post #9





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


zmieniłem na coś takiego ale wciąż dubluje mi checkboxy

  1. <?php
  2. try
  3. {
  4. $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
  5. $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
  6. $sql = 'SELECT o.id oid,p.id pid,p.id_ogloszenia pid_ogloszenia,p.id_prawo_jazdy pid_prawo_jazdy from ogloszenia o LEFT OUTER JOIN pj p on o.id=p.id_ogloszenia WHERE o.id=:id';
  7. $stmt = $con->prepare( $sql );
  8. $stmt -> bindValue(':id', $_GET['id'], PDO::PARAM_INT);
  9. $stmt -> execute();
  10. $ogloszenia = array();
  11. while($row = $stmt -> fetch())
  12. {
  13. if (!isset($ogloszenia[$oid]))
  14. $ogloszenia[$oid] = array(
  15. 'id' => $row['oid'],'pjk' => array());
  16. if (!empty($row['pid_prawo_jazdy']))
  17. $ogloszenia[$oid]['pjk'][$row['pid']]= array('id_prawo_jazdy' => $row['pid_prawo_jazdy']
  18. );
  19.  
  20. }
  21. foreach ($ogloszenia as $id_og => $ogloszenia)
  22. {
  23. echo $ogloszenia['id']
  24. foreach ($ogloszenia['pjk'] as $pj){
  25. ?>
  26. <input name='id_prawo_jazdy[]' id='id_prawo_jazdy[]' type='checkbox' class='style7a' value='1' <?php if ($pj['id_prawo_jazdy'] == 1) {echo 'checked';} ?>> AM
  27. <input name='id_prawo_jazdy[]' id='id_prawo_jazdy[]' type='checkbox' class='style7a' value='2' <?php if ($pj['id_prawo_jazdy'] ==2) {echo 'checked';} ?>> A1
  28. <input name='id_prawo_jazdy[]' id='id_prawo_jazdy[]' type='checkbox' class='style7a' value='3' <?php if ($pj['id_prawo_jazdy'] == 3) {echo 'checked';} ?>> A2
  29. <?php
  30. }
  31. }
  32. $stmt -> closeCursor();
  33. }
  34. catch(PDOException $e)
  35. {
  36. echo 'Wystapił błąd.u.';
  37. }
  38.  
  39. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




Przeciez ci pisalem, ze masz iterowac tylko i wylacznie po glownej petli i to ona w sobie ma generowac JEDEN checkbox. Druga tablica miala tylko i WYLACZNIE sluzyc do sprawdzenie czy dana wartosc juz w niej jest i na tej podstawie dodawach "zaznaczenie" checkboxa.
Go to the top of the page
+Quote Post
peklo
post
Post #11





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


mam coś takiego ale teraz zaznacza mi 1 selecta a nie 3. juz nie wiem o co kaman
  1. <?php
  2. try
  3. {
  4.  
  5. $sql = 'SELECT o.id oid,p.id pid,p.id_ogloszenia pid_ogloszenia,p.id_prawo_jazdy pid_prawo_jazdy from ogloszenia o LEFT OUTER JOIN pj p on o.id=p.id_ogloszenia WHERE o.id=:id';
  6. $stmt = $con->prepare( $sql );
  7. $stmt -> bindValue(':id', $_GET['id'], PDO::PARAM_INT);
  8. $stmt -> execute();
  9. $ogloszenia = array();
  10. while($row = $stmt -> fetch())
  11. {
  12. if (!isset($ogloszenia[$oid]))
  13. $ogloszenia[$oid] = array('id' => $row['oid'],'pjk' => array());
  14.  
  15. if (!empty($row['pid_prawo_jazdy']))
  16. $ogloszenia[$oid]['pjk'][$row['pid']]= array('id_prawo_jazdy' => $row['pid_prawo_jazdy']
  17. );
  18.  
  19. }
  20. foreach ($ogloszenia as $id_og => $ogloszenia)
  21. {
  22. echo $ogloszenia['id']
  23. ?>
  24. <input name='id_prawo_jazdy[]' type='checkbox' value='1'<?php if ($ogloszenia['id_prawo_jazdy'] == 1) {echo 'checked';} ?>>AM
  25. <input name='id_prawo_jazdy[]' type='checkbox' value='2'<?php if ($ogloszenia['id_prawo_jazdy'] ==2) {echo 'checked';} ?>>A1
  26. <input name='id_prawo_jazdy[]' type='checkbox' value='3'<?php if ($ogloszenia['id_prawo_jazdy'] == 3) {echo 'checked';} ?>>A2
  27. <?php
  28. }
  29. $stmt -> closeCursor();
  30. }
  31. catch(PDOException $e)
  32. {
  33. echo 'Wystapił bł&plusmn;d.u.';
  34. }
  35.  
  36. ?>
Go to the top of the page
+Quote Post
trueblue
post
Post #12





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Selecta czy checkboxa(?)
$ogloszenia['id_prawo_jazdy'] jak rozumiem nie jest tablicą, lecz pojedynczą wartością, więc zaznacza jeden checkbox.

Go to the top of the page
+Quote Post
peklo
post
Post #13





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


oj checkboxa oczywiscie.
generalnie chodzi o to że tutaj jest grupowanie wyników. Mam tabele1 z id=powiedzmy 1 i tabele2 z kilkoma id=1.

Czyli tabela1.id=tabele2.id gdzie w tabeli2 id o nr 1 jest powiedzmy 3 sztuki lub więcej. i teraz chcę to edytować i te wartości które są prawdziwe maja się zaznaczyć. Ale nie wiem jak to pogrupować

Ten post edytował peklo 25.03.2014, 15:20:03
Go to the top of the page
+Quote Post
trueblue
post
Post #14





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


  1. foreach ($ogloszenia as $id_og => $ogloszenie)
  2. {
  3. ?>
  4. <input name='id_prawo_jazdy[<?php echo $id_og;?>]' type='checkbox' value='1'<?php if ($ogloszenie['id_prawo_jazdy'] == 1) {echo 'checked="checked"';} ?>>AM
  5. <input name='id_prawo_jazdy[<?php echo $id_og;?>]' type='checkbox' value='2'<?php if ($ogloszenie['id_prawo_jazdy'] ==2) {echo 'checked="checked"';} ?>>A1
  6. <input name='id_prawo_jazdy[<?php echo $id_og;?>]' type='checkbox' value='3'<?php if ($ogloszenie['id_prawo_jazdy'] == 3) {echo 'checked="checked"';} ?>>A2
  7. <?php
  8. }


Ten post edytował trueblue 25.03.2014, 15:26:10
Go to the top of the page
+Quote Post
peklo
post
Post #15





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


coś mi to nie działa (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Pokaż kawałek tablicy $ogloszenia.
Go to the top of the page
+Quote Post
peklo
post
Post #17





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


muszę teraz iśc po dziecko jak przyjde to wkleje tablice ogloszenia

Array ( [id] => 26 [nazwa_firmy] => [id_prawo_jazdy] => 1 [telefon] => [wyb_kategorii1] => Array ( ) [pjk] => Array ( [49] => Array ( [id_prawo_jazdy] => 1 ) [50] => Array ( [id_prawo_jazdy] => 2 ) [51] => Array ( [id_prawo_jazdy] => 3 ) ) [wyposazeniew] => Array ( ) )
Go to the top of the page
+Quote Post
trueblue
post
Post #18





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


  1. foreach ($ogloszenia as $ogloszenie)
  2. {
  3. $pj=array();
  4. foreach($ogloszenie['pjk'] as $id=>$arr){
  5. $pj[]=$arr['id_prawo_jazdy'];
  6. }
  7. ?>
  8. <input name='id_prawo_jazdy[<?php echo $ogloszenie['id'];?>]' type='checkbox' value='1'<?php if(in_array(1,$pj)) {echo 'checked="checked"';} ?>>AM
  9. <input name='id_prawo_jazdy[<?php echo $ogloszenie['id'];?>]' type='checkbox' value='2'<?php if(in_array(2,$pj)) {echo 'checked="checked"';} ?>>A1
  10. <input name='id_prawo_jazdy[<?php echo $ogloszenie['id'];?>]' type='checkbox' value='3'<?php if(in_array(3,$pj)) {echo 'checked="checked"';} ?>>A2
  11. <?php
  12. }
Go to the top of the page
+Quote Post
peklo
post
Post #19





Grupa: Zarejestrowani
Postów: 420
Pomógł: 0
Dołączył: 27.07.2011

Ostrzeżenie: (10%)
X----


dzięki za pomoc - punkt dla Ciebie. walczyłem z tym chyba ze 3 dni i nic nie wskorałem. Jeszcze raz dzięki
Go to the top of the page
+Quote Post
trueblue
post
Post #20





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Nie wiem czy się nie wkradł błąd w nazwie checkboxa.
Bo albo będzie tak jak podałem, albo:
  1. <input name='id_prawo_jazdy[<?php echo $id;?>]'

Czyli id_ogloszenie lub id_prawo_jazdy, ale to już bardziej zależy od Ciebie.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 12:13