Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][JavaScript] Problem z przekazaniem zmiennej w jQuery File Upload
Forum PHP.pl > Forum > Przedszkole
McGal
Skorzystałem z dostępnego skryptu dodawania zdjęć na serwer i do bazy MySql jQuery File Upload

Przerobiłem go na moje potrzeby i działa rewelacyjnie lecz tylko w 99%.

Potrzebuję wprowadzić INSERTEM do bazy ID które przekazuję do jQuery File Upload z poprzedniej strony

  1. <a href="upload/index.php?set_id=<?php echo $query2['set_id']; ?>" class="btn yellow">


korzystałem wcześniej przy tego typu zabiegach z

  1. $set_id = $_REQUEST['set_id'];


i w Insert podawałem wartość zmiennej i była przekazywana do bazy razem z linkiem

Niestety w przypadku tego skryptu wyskakuje błąd "nieprawidłowy token" przy dodawaniu zdjęcia i nie jest to już taka prosta sprawa

Poniżej główny skrypt jQFU

  1. $options = array(
  2. 'delete_type' => 'POST',
  3. 'db_host' => 'localhost',
  4. 'db_user' => '',
  5. 'db_pass' => '',
  6. 'db_name' => '',
  7. 'db_table' => 'files'
  8. );
  9.  
  10. error_reporting(E_ALL | E_STRICT);
  11. require('UploadHandler.php');
  12.  
  13. class CustomUploadHandler extends UploadHandler {
  14.  
  15. protected function initialize() {
  16. $this->db = new mysqli(
  17. $this->options['db_host'],
  18. $this->options['db_user'],
  19. $this->options['db_pass'],
  20. $this->options['db_name']
  21. );
  22. parent::initialize();
  23. $this->db->close();
  24. }
  25.  
  26. protected function handle_form_data($file, $index) {
  27. $file->title = @$_REQUEST['title'][$index];
  28. $file->description = @$_REQUEST['description'][$index];
  29. }
  30.  
  31. protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
  32. $index = null, $content_range = null) {
  33. $file = parent::handle_file_upload(
  34. $uploaded_file, $name, $size, $type, $error, $index, $content_range
  35. );
  36. if (empty($file->error)) {
  37. $sql = 'INSERT INTO `'.$this->options['db_table']
  38. .'` (`name`, `size`, `type`, `title`, `description`)'
  39. .' VALUES (?, ?, ?, ?, ?)';
  40. $query = $this->db->prepare($sql);
  41. $query->bind_param(
  42. 'sisss',
  43. $file->name,
  44. $file->size,
  45. $file->type,
  46. $file->title,
  47. $file->description
  48. );
  49. $query->execute();
  50. $file->id = $this->db->insert_id;
  51. }
  52. return $file;
  53. }
  54.  
  55. protected function set_additional_file_properties($file) {
  56. parent::set_additional_file_properties($file);
  57. if ($_SERVER['REQUEST_METHOD'] === 'GET') {
  58. $sql = 'SELECT `id`, `type`, `title`, `description` FROM `'
  59. .$this->options['db_table'].'` WHERE `name`=?';
  60. $query = $this->db->prepare($sql);
  61. $query->bind_param('s', $file->name);
  62. $query->execute();
  63. $query->bind_result(
  64. $id,
  65. $type,
  66. $title,
  67. $description
  68. );
  69. while ($query->fetch()) {
  70. $file->id = $id;
  71. $file->type = $type;
  72. $file->title = $title;
  73. $file->description = $description;
  74. }
  75. }
  76. }
  77.  
  78. public function delete($print_response = true) {
  79. $response = parent::delete(false);
  80. foreach ($response as $name => $deleted) {
  81. if ($deleted) {
  82. $sql = 'DELETE FROM `'
  83. .$this->options['db_table'].'` WHERE `name`=?';
  84. $query = $this->db->prepare($sql);
  85. $query->bind_param('s', $name);
  86. $query->execute();
  87. }
  88. }
  89. return $this->generate_response($response, $print_response);
  90. }
  91.  
  92. }
  93.  
  94. $upload_handler = new CustomUploadHandler($options);



Jak poradzić sobie z tym problemem questionmark.gif
Comandeer
To jest błąd po stronie PHP czy JS?
McGal
Raczej po php
Comandeer
A pokaż odpowiedź serwera na żądanie Ajaksem
McGal
Na stronce w miejscu załadowania zdjęcia wyświetla się "SyntaxError: Unexpected token <"

a firebug pokazuje:

Notice: Undefined index: set_id in /upload/server/php/index.php on line 39

Fatal error: Call to a member function bind_param() on a non-object in /upload/server/php/index.php on line 44
Comandeer
Pokaż całość index.php, bo np teraz nie ma w ogóle linijki z set_id
McGal
Nie ma ponieważ wkleiłem czysty kod który działa, ale niestety nie spełnia do końca oczekiwań.

Po dodaniu zmiennej 'set_id' która ma przypisać zdjęcie do konkretnego zbioru niestety się rozsypuje, jak świadczą powyższe błędy.

Czy macie pomysł na wprowadzenie tej zmiennej do tego kodu.
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.