Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z przesłaniem danych do formularza (checkbox)
kotek2185
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


Witam wszystkich,
otóż mam problem z przesłaniem danych do formularza przy zaznaczonym polu checkbox. Jestem świeży w php więc jakby dało rade jakąś podpowiedź bądź sprostowanie bo pewnie popełniam jakiś błąd merytoryczny. Do tej pory skleiłem:
plik users.php (ma za zadanie wczytac wszystkich userów dodatkowo przy każdym checkbox wraz z trzema buttonami, usuwanie i dodawanie userów działa bez problemu jednak przy edycji coś nie gra, sądzę że jest to problem z przesłaniem danych do pliku user_edit.php questionmark.gif
users:
  1. $sql="SELECT * FROM users order by id asc";
  2. $result=mysql_query($sql);
  3.  
  4. $count=mysql_num_rows($result);
  5. ?>
  6. <center>
  7. <table width="400" border="0" cellspacing="1" cellpadding="0">
  8. <tr>
  9. <td><form name="form1" method="post" action="">
  10. <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
  11. <tr>
  12. <td align="center" bgcolor="#FFFFFF">#</td>
  13. <td align="center" bgcolor="#FFFFFF"><strong>Login</strong></td>
  14. <td align="center" bgcolor="#FFFFFF"><strong>Imie</strong></td>
  15. <td align="center" bgcolor="#FFFFFF"><strong>Nazwisko</strong></td>
  16. </tr>
  17. <?php
  18. while($rows=mysql_fetch_array($result)){
  19. ?>
  20. <tr>
  21. <td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $rows['id']; ?>"></td>
  22. <td align="center" bgcolor="#FFFFFF"><?php echo $rows['nick']; ?></td>
  23. <td align="center" bgcolor="#FFFFFF"><?php echo $rows['imie']; ?></td>
  24. <td align="center" bgcolor="#FFFFFF"><?php echo $rows['nazwisko']; ?></td>
  25. </tr>
  26. <?php
  27. }
  28. ?>
  29. <tr>
  30. <td colspan="5" align="center" bgcolor="#FFFFFF">
  31. <input name="add" type="button" id="add" value="Dodaj" onClick="parent.location.href='indeks.php?page=user_add'" />
  32. <input name="delete" type="submit" id="delete" value="Usun">
  33. <input name="edit" type="button" id="edit" value="Edytuj" onClick="parent.location.href='user_edit.php'" /></td>
  34. </tr>
  35. <?php
  36. // Check if delete button active, start this
  37.  
  38. $checkbox=$_POST['checkbox'];
  39. if($_POST['delete']){
  40. for($i=0;$i<$count;$i++){
  41. $del_id = $checkbox[$i];
  42. $sql = "DELETE FROM users WHERE id='$del_id'";
  43. $result = mysql_query($sql);
  44. }
  45.  
  46. // if successful redirect to delete_multiple.php
  47. if($result){
  48. echo "<meta http-equiv=\"refresh\" content=\"0;URL=indeks.php?page=users\">";
  49. }
  50. }
  51. ?>
  52. </table>
  53. </form>
  54. </td>
  55. </tr>
  56. </table>


oraz user_edit.php:
  1. <?php include("config.php");
  2.  
  3. // Check if delete button active, start this
  4.  
  5. $checkbox=$_GET['checkbox'];
  6.  
  7. if($_POST['edit']){
  8. for($i=0;$i<$count;$i++){
  9. $edit_id = $checkbox[$i];
  10. $sql = "SELECT * FROM users WHERE id='$edit_id'";
  11. $result = mysql_query($sql);
  12. $rows=mysql_fetch_array($result);
  13. }
  14. }
  15. ?>

... i dalej tabela w którą ma wczytyc się wybrany rekord.

Proszę o pomoc i jakieś wskazówki...
Go to the top of the page
+Quote Post
rafal.t
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 6
Dołączył: 2.01.2010

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


Wysyłasz post a w user_edit.php masz $_GET["checkbox"]. Spójrz jak masz przy usuwaniu.


--------------------
---------------------------------------------------------
https://twitter.com/#!/RafalTokar
Go to the top of the page
+Quote Post
kotek2185
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


Nie bardzo to pomogło. Tak sobie myślę czy błąd nie jest spowodowany tym że chcę wykonać dwie akcje w jednym znaczniku
czy nie ma to żadnego związku?
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A skąd bierzesz wartość $count?
Poza tym w przypadku checkboxów lepiej zamiast for używac foreach.


--------------------
Go to the top of the page
+Quote Post
kotek2185
post
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


wartosc $count istnieje tylko w pliku users.php i ma za zadanie jak wyczytałem zwracać liczbę wierszy w wyniku, ale Ty pewnie o tym wiesz;)

  1. <?php
  2. $sql="SELECT * FROM users order by id asc";
  3. $result=mysql_query($sql);
  4.  
  5. $count=mysql_num_rows($result);
  6. ?>




tak więc powinienem przesłać zmienną $count również do user_edit.php ?
Go to the top of the page
+Quote Post
mis
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 25.04.2010

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


Cytat(kotek2185 @ 14.12.2011, 10:16:24 ) *
tak więc powinienem przesłać zmienną $count również do user_edit.php ?



tak, ta istnieje tylko w pliku, w którym jest utworzona(w Twoim wypadku), więc musisz ją także przesłać.
Go to the top of the page
+Quote Post
kotek2185
post
Post #7





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


ehh dalej jest coś nie tak, może jeszcze jakieś propozycje?

teraz jest tak: user_edit.php:

  1. <?php include("config.php");
  2.  
  3. // Check if delete button active, start this
  4.  
  5. $checkbox=$_POST['checkbox'];
  6. $count=$_POST['count'];
  7.  
  8. if($_POST['edit']){
  9. for($i=0;$i<$count;$i++){
  10. $edit_id = $checkbox[$i];
  11. $sql = "SELECT * FROM users WHERE id='$edit_id'";
  12. $result = mysql_query($sql);
  13. $rows=mysql_fetch_array($result);
  14. }
  15. }
  16. ?>
  17. <form name="form1" method="post" action="user_edit_script.php">
  18. <table width="400" border="0" cellspacing="1" cellpadding="0">
  19. <tr>
  20. <td align="center"><strong>Imie</strong></td>
  21. <td align="center"><strong>Nazwisko</strong></td>
  22. <td align="center"><strong>Nick</strong></td>
  23. </tr>
  24. <tr>
  25. <td align="center"><input name="imie" type="text" id="imie" value="<? echo $rows['imie']; ?>"></td>
  26.  
  27. <td align="center"><input name="nazwisko" type="text" id="nazwisko" value="<? echo $rows['nazwisko']; ?>"></td>
  28.  
  29. <td><input name="nick" type="text" id="nick" value="<? echo $rows['nick']; ?>" size="30"></td>
  30. </tr>
  31. <tr>
  32. <td colspan="5" align="center"><input type="submit" name="Submit" value="Zapisz nowe dane"></td>
  33. </tr>
  34. </table>
  35. </td>
  36. </form>

Go to the top of the page
+Quote Post
rafal.t
post
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 6
Dołączył: 2.01.2010

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


hmm, wszystko fajnie ale musisz umieścić wartość count jako wartość jakiegoś pola w formularzu. Dodaj w wewnątrz formularza (pomiędzy <form></form>) takie pole:
  1. <input type="hidden" name="count" value="<?php echo $count; ?>" />


Oczywiście wcześniej w skrypcie, w tym samym pliku, musisz mieć zadeklarowaną zmienną $count z odpowiednią wartością.


--------------------
---------------------------------------------------------
https://twitter.com/#!/RafalTokar
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 Aktualny czas: 21.08.2025 - 15:18