Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Twitter Bootstrap + modal window + zmiana hasła użytkownika
Forum PHP.pl > Forum > Przedszkole
john_doe
Witam,

mam taki kod widoku

  1. <table class="table table-hover">
  2. <thead>
  3. <tr>
  4. <th>#</th>
  5. <th>Imię i Nazwisko</th>
  6. <th>Login</th>
  7. <th>Rola</th>
  8. <th>Status</th>
  9. <th>Akcje</th>
  10. </tr>
  11. </thead>
  12. <tbody>
  13.  
  14. <?php
  15.  
  16. $i = 1;
  17. foreach($users as $user)
  18. {
  19. echo '<tr>';
  20. echo '<td>' . $i . '</td>';
  21. echo '<td>' . $user->user_name . ' ' . $user->user_surname . '</td>';
  22. echo '<td>' . $user->user_login . '</td>';
  23. echo '<td>' . $user->user_type . '</td>';
  24. echo '<td>' . $user->user_status . '</td>';
  25. echo '
  26.  
  27. <td>
  28. <div class="btn-group">
  29. <a class="btn btn-mini btn-primary" href="#"><i class="icon-edit icon-white"></i> Rozwiń</a>
  30. <a class="btn btn-mini btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
  31. <ul class="dropdown-menu">
  32. <li><a data-toggle="modal" href="#example" ><i class="icon-pencil"></i> Zmień hasło</a></li>';
  33.  
  34. if($user->user_status == 'active')
  35. {
  36. echo '<li><a href="' . base_url() . 'users/switch_user_status/deactivate/' . $user->user_id . '"><i class="icon-trash"></i> Wyłącz to konto</a></li>';
  37. }
  38. else
  39. {
  40. echo '<li><a href="' . base_url() . 'users/switch_user_status/activate/' . $user->user_id . '"><i class="icon-trash"></i> Włącz to konto</a></li>';
  41. }
  42. echo ' </ul>
  43. </div>
  44. </td>
  45. ';
  46. echo '</tr>';
  47.  
  48. $i++;
  49.  
  50. }
  51.  
  52. ?>
  53.  
  54. </tbody>
  55. <tfoot>
  56. <tr>
  57. <td colspan="5">
  58. <button onclick="window.location.href='<?php echo base_url(); ?>users/add'" class="btn btn-primary">Dodaj użytkownika</button>
  59. </td>
  60. </tr>
  61. </tfoot>
  62. </table>
  63.  
  64. <!-- modal window from twitter bootstram -->
  65. <div id="example" class="modal hide fade in" style="display: none; ">
  66.  
  67. <div class="modal-header">
  68. <a class="close" data-dismiss="modal">×</a>
  69. <h3>Zmiana hasła</h3>
  70. </div>
  71.  
  72. <div class="modal-body">
  73. <h4>Podaj nowe hasło</h4>
  74. <p>
  75. <form method="POST" action="<?php echo base_url(); ?>user/change_passwd">
  76. <input type="text" name="user_password" />
  77. </p>
  78. </div>
  79.  
  80. <div class="modal-footer">
  81. <button type="submit" class="btn btn-primary">Zapisz</button>
  82. <a href="#" class="btn" data-dismiss="modal">Rezygnuj</a>
  83. </form>
  84. </div>
  85.  
  86. </div>


i teraz gdy kliknę w wierszu na zmień hasło pojawia mi się bootstrapowe okienko gdzie mam formularz z polem do wpisania nowego hasła. Tutaj mam mały problem bo musiałbym ten formularz wysłać i wykonać akcję change_passwd z parametrem id danego usera. I narazie nie mam pomysłu jak to osiągnąć. Wstawiać js`em do form action =""id usera jakoś?
Michasko
Dokładnie tak.
Albo przypisujesz atrybutowi 'action' URL pliku, którym obsłużysz żądanie, albo wykonaj to za pomocą żądania AJAX - czyli bez przeładowania całej strony (bez większych problemów zrobisz to przy użyciu jQuery - funkcja ajax).
Taki URL mógłby wyglądać np.:
  1. <?php echo base_url(); ?>user/change_passwd/1
gdzie 1 to ID usera.
Jeśli problemem jest wygenerowanie ID dla każdego usera z osobna, to możesz w trakcie generowania tabelki za pomocą PHP przypisać kolejnym wierszom ID = ID użytkownika:
  1. <tr id="13">
  2. ... //dalszy kod
  3. </tr>
i potem po kliknięciu na przycisk 'Zmień hasło' - dodajesz to ID na końcu wartości atrybutu 'action' smile.gif
john_doe
dzięki za podpowiedź
nadałem każdemu <tr> id usera
poniższy kod działa ok

  1. $(document).ready(function()
  2. {
  3.  
  4. var action_string = $("#chg_passwd_form").attr('action');
  5.  
  6.  
  7. $('.test').bind('click', function()
  8. {
  9. var add_it = $(this).closest('tr').attr('id');
  10. alert(add_it);
  11. alert('User clicked');
  12. $("#chg_passwd_form").attr('action', action_string + "/" + add_it);
  13.  
  14. });
  15.  
  16. });
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.