Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlenie komunikatu.
Forum PHP.pl > Forum > Przedszkole
woxala123
Jak zrobic żeby user musi zaznaczyć checkbox by móc wysłać formularz do edycji. Chodzi mi o komunikat jak wysyła niezaznaczone checboxy.
Oto kod
  1. <?php require_once('../Connections/myconn.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString")) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  5. {
  6. if (PHP_VERSION < 6) {
  7. $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8. }
  9.  
  10. $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  11.  
  12. switch ($theType) {
  13. case "text":
  14. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  15. break;
  16. case "long":
  17. case "int":
  18. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  19. break;
  20. case "double":
  21. $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  22. break;
  23. case "date":
  24. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  25. break;
  26. case "defined":
  27. $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  28. break;
  29. }
  30. return $theValue;
  31. }
  32. }
  33.  
  34. mysql_select_db($database_myconn, $myconn);
  35. $query_Recordset1 = "SELECT * FROM userlogin";
  36. $Recordset1 = mysql_query($query_Recordset1, $myconn) or die(mysql_error());
  37. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  38. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  39. ?>
  40. <form name="form1" method="post" action="edit_user.php">
  41. <table border="1" cellpadding="1" cellspacing="1">
  42. <tr>
  43. <td>Oznacz</td>
  44. <td>user_id</td>
  45. <td>firstname</td>
  46. <td>lastname</td>
  47. <td>username</td>
  48. <td>password</td>
  49. <td>email</td>
  50. <td>dateregister</td>
  51. <td>lastlogin</td>
  52. <td>active</td>
  53. <td>COLOR</td>
  54. <td>ip</td>
  55. </tr>
  56. <?php do { ?>
  57. <tr>
  58. <td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $row_Recordset1['user_id']; ?>">
  59. <label for="checkbox[]"></label></td>
  60. <td><?php echo $row_Recordset1['user_id']; ?></td>
  61. <td><?php echo $row_Recordset1['firstname']; ?></td>
  62. <td><?php echo $row_Recordset1['lastname']; ?></td>
  63. <td><?php echo $row_Recordset1['username']; ?></td>
  64. <td><?php echo $row_Recordset1['password']; ?></td>
  65. <td><?php echo $row_Recordset1['email']; ?></td>
  66. <td><?php echo $row_Recordset1['dateregister']; ?></td>
  67. <td><?php echo $row_Recordset1['lastlogin']; ?></td>
  68. <td><?php echo $row_Recordset1['active']; ?></td>
  69. <td><?php echo $row_Recordset1['COLOR']; ?></td>
  70. <td><?php echo $row_Recordset1['ip']; ?></td>
  71. </tr>
  72. <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
  73. </table>
  74. <input type="submit" name="submit" id="submit" value="Wyślij">
  75. </form>
  76. <?php
  77. mysql_free_result($Recordset1);
  78. ?>
  79.  
  80.  
nospor
W kodzie do edycji musisz dodac sprawdzanie czy checkbox zostal wcisniety
woxala123
Ale jak to zrobić? Może przykąłd
SmokAnalog
Przede wszystkim zamień do..while na while.
nospor
@SmokAnalog ale staramy sie czytac caly kod a nie tylko urywek

Co do problemu:
czy checkbox sie wyslal czy nie to masz info o tym w $_POST. No i jeszcze do tego dodajesz IF i masz problem z glowy
woxala123

To kawałek kodu z pliku do edit_user.php

  1. $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;
  2. $query_Recordset1 = "SELECT user_id, firstname, lastname, username, password,email,dateregister,lastlogin,active FROM userlogin WHERE user_id IN (".implode(',',$_POST['checkbox']).")";
  3. $Recordset1 = mysql_query($query_Recordset1, $myconn) or die(mysql_error());
  4. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  5. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  6. ?>

Gdzie tutaj dodac info o tym czy został zaznaczoiny checkbox

Okey zrobiłem coś takiego że dodałem na początku pliku edit_user.php taki kod
  1. <?php
  2. if(isset($_POST['checkbox']) && isset($_POST['checkbox'])) {
  3. echo 'Zaznaczyłeś prawidłowo usera';
  4.  
  5.  
  6. } else {
  7. echo 'Nie zaznaczyłeś usera';
  8. }
  9.  
  10. ?>
  11.  

I teraz tak jeśli zaznaczę pokazuje wszystko okey że zaznaczyłęm, ale w drugą stronę by juz też działało tzn: że jeśli nie zaznaczę to wyskakuje komunikat " Nie zaznaczyłś usera ale jeszcze wypierdala mi błąd
Warning: implode(): Invalid arguments passed in D:\xampp\htdocs\admin\_admin\edit_user.php on line 137
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Pytanko jak pozbyc się tej informacji? Pozdrawiam
nospor
Cytat
wypierdala


Jak obeznasz sie troche z kultura, zapraszam ponownie

edit: otwieram
woxala123
Rozwiązałem w ten sposób.
do edit_user.php .dodałem taki kod
  1. $dane = $_POST['checkbox'];
  2.  
  3. // sprawdzanie: czy jakieś pole zostało w ogóle zaznaczone - jeśli puste to zwracamy error
  4. if ( !count($dane) ) {
  5. die('Wybierz przynajmniej jedno pole, aby zobaczyć zawartość tej podstrony...');
  6.  

Temat zamknięty
Tomplus
"Warning: implode(): Invalid arguments passed"
Powinieneś przed:

  1. $Recordset1 = mysql_query($query_Recordset1, $myconn) or die(mysql_error());
  2. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  3. $totalRows_Recordset1 = mysql_num_rows($Recordset1);


dodać IF, gdzie warunkiem jest istnienie $_POST['checkbox']

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.