Cześć wszystkim,

jestem początkujący w temacie PHP. Piszę sobie wtyczkę do Wordpress do dodawania produktów i mam następującą zagwozdkę.
Mam jeden formularz z wprowadzaniem produktów i drugą stronę do przeglądania produktów. Chciałbym móc edytować dane produktów klikając przycisk edytuj obok rekordu na stronie przeglądania produktów i umieścić dane tego produktu w formularzu, tak żeby móc je nadpisać. Poniżej wrzucam to co już udało mi się napisać. Przy okazji proszę o uwagi odnośnie skryptu.

  1. function wp_wykladziny_init()
  2. {
  3. wp_register_style('wp-wykladziny-css', plugins_url('style.css', __FILE__));
  4. wp_enqueue_style('wp-wykladziny-css');
  5. }
  6. add_action('init', 'wp_wykladziny_init');
  7.  
  8. define( 'FLIF_PATH', plugin_dir_path( __FILE__ ) );
  9. require FLIF_PATH.'flif_model.php';
  10.  
  11. defined( 'ABSPATH' ) or die( 'Nie podłączaj mi się tu tym swoim zawirusowanym skryptem!!' );
  12.  
  13. /* Tworzy tabelę bazy danych dla wtyczki */
  14.  
  15. function flif_install() {
  16. global $wpdb;
  17. $table = $wpdb->prefix . "fl_insert_floor";
  18. $charset_collate = $wpdb->get_charset_collate();
  19.  
  20. $sql = "CREATE TABLE IF NOT EXISTS $table (
  21. `id` mediumint(9) NOT NULL AUTO_INCREMENT,
  22. `name` text NOT NULL, UNIQUE (`id`),
  23. `obj_box` text NOT NULL,
  24. `material` text NOT NULL,
  25. `producer` text NOT NULL,
  26. `installation` text NOT NULL,
  27. `characteristic` text NOT NULL,
  28. `content` text NOT NULL,
  29. `gr_fleece` text NOT NULL,
  30. `gr_total` text NOT NULL,
  31. `height_total` text NOT NULL,
  32. `height_fleece` text NOT NULL,
  33. `tuft` text NOT NULL,
  34. `fire_class` text NOT NULL,
  35. `sound_absorb` text NOT NULL,
  36. `description` text NOT NULL
  37.  
  38. ) $charset_collate;";
  39. require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
  40. dbDelta( $sql );
  41. }
  42.  
  43. register_activation_hook(__FILE__, 'flif_install');
  44.  
  45. /** * Dodawanie wtyczki do panelu administracyjnego */
  46. function flif_plugin_menu() {
  47. add_menu_page('Wykładziny', 'Wykładziny', 'administrator', 'flif_settings', 'flif_display_settings');
  48. add_submenu_page('flif_settings', __('Wprowadź produkt'), __('Wprowadź produkt'), 'edit_themes', 'flif_propert', 'flif_propert');
  49. add_submenu_page('flif_settings', __('Przeglądaj wykładziny'), __('Przeglądaj wykładziny'), 'edit_themes', 'flif_browsing', 'flif_browsing');
  50. }
  51. add_action('admin_menu', 'flif_plugin_menu');
  52.  
  53.  
  54. //Wyswietla formularz dodawania produktu do bazy
  55.  
  56. function flif_propert() {
  57.  
  58. if (isset($_POST["name"]) != "" )
  59. {
  60. global $wpdb;
  61. $table = $wpdb->prefix."fl_insert_floor";
  62.  
  63. $name = strip_tags($_POST["name"], "");
  64. $description = strip_tags($_POST["description"], "");
  65. $obj_box = serialize($_POST['obj_box']); //wrzuca tablice do jednego rekordu w tabeli mysql
  66. $material = strip_tags($_POST["material"], "");
  67. $producer = strip_tags($_POST["producer"], "");
  68. $installation = serialize($_POST['installation']);
  69. $characteristic = serialize($_POST['characteristic']);
  70. $content = strip_tags($_POST["content"], "");
  71. $gr_fleece = strip_tags($_POST["gr_fleece"], "");
  72. $gr_total = strip_tags($_POST["gr_total"], "");
  73. $height_total = strip_tags($_POST["height_total"], "");
  74. $height_fleece = strip_tags($_POST["height_fleece"], "");
  75. $tuft = strip_tags($_POST["tuft"], "");
  76. $fire_class = strip_tags($_POST["fire_class"], "");
  77. $sound_absorb = strip_tags($_POST["sound_absorb"], "");
  78.  
  79. $wpdb->insert(
  80. $table,
  81. 'name' => $name,
  82. 'obj_box' => $obj_box,
  83. 'material' => $material,
  84. 'producer' => $producer,
  85. 'installation' => $installation,
  86. 'characteristic' => $characteristic,
  87. 'content' => $content,
  88. 'gr_fleece' => $gr_fleece,
  89. 'gr_total' => $gr_total,
  90. 'height_total' => $height_total,
  91. 'height_fleece' => $height_fleece,
  92. 'tuft' => $tuft,
  93. 'fire_class' => $fire_class,
  94. 'sound_absorb' => $sound_absorb,
  95. 'description' => $description
  96. )
  97. );
  98. }
  99.  


Wrzucam resztę kodu, gdyż nie zmieścił się:

  1. // adds a shortcode you can use: [insert-into-db]
  2. add_shortcode('flif-db-insert', 'flif_insert_into_db');
  3.  
  4.  
  5. echo '<h2>' . __('Wprowadż wykładzinę') . '</h2>';
  6. echo '<form action="?page=flif_propert" method="post">
  7.  
  8. <label for="name">Nazwa</label><input name="name" type="text" style="width: 50%;" value="" >
  9. </br></br>
  10.  
  11. <label for="producer">Producent</label>
  12. <select name = "producer">
  13. <option>Altro</option>
  14. <option>Balsan</option>
  15. <option>Burmatex</option>
  16. <option>Fatra</option>
  17. <option>Forbo</option>
  18. <option>Ideal</option>
  19. <option>Lano</option>
  20. <option>Lentex</option>
  21. <option>Modulyss</option>
  22. <option>Tarkett</option>
  23. <option>Tecsom</option>
  24. <option>Timzo</option>
  25. <option>...inny</option>
  26. </select>
  27. </br></br>
  28.  
  29. <label>Typ obiektu:</label></br>
  30. <input type="checkbox" value="Hotele i pensjonaty" name="obj_box[]" >Hotele i pensjonaty
  31. <input type="checkbox" value="Obiekty sportowe" name="obj_box[]" >Obiekty sportowe
  32. <input type="checkbox" value="Szkoły" name="obj_box[]" >Szkoły</br>
  33. <input type="checkbox" value="Biura" name="obj_box[]" >Biura
  34. <input type="checkbox" value="Domy i mieszkania" name="obj_box[]" >Domy i mieszkania
  35. <input type="checkbox" value="Kina, teatry, restauracje" name="obj_box[]" >Kina, teatry, restauracje</br>
  36. <input type="checkbox" value="Wojsko, policja" name="obj_box[]" >Wojsko, policja
  37. <input type="checkbox" value="Sklepy" name="obj_box[]" >Sklepy
  38. <input type="checkbox" value="Szpitale i służba zdrowia" name="obj_box[]" >Szpitale i służba zdrowia</br>
  39. <input type="checkbox" value="Przemysł" name="obj_box[]" >Przemysł
  40. <input type="checkbox" value="Laboratoria" name="obj_box[]" >Laboratoria
  41. </br></br>
  42.  
  43. <label for="material">Materiał wykonania</label>
  44. <select name = "material">
  45. <option>Dywanowa</option>
  46. <option>PVC Homogeniczna</option>
  47. <option>PVC Heterogeniczna</option>
  48. <option>Winylowa LVT</option>
  49. <option>Linoleum</option>
  50. </select>
  51.  
  52. </br></br>
  53. <label>Instalacja:</label></br>
  54. <input type="checkbox" value="Rolka" name="installation[]" >Rolka
  55. <input type="checkbox" value="Płytka" name="installation[]" >Płytka
  56. <input type="checkbox" value="Panel" name="installation[]" >Panel
  57. </br></br>
  58.  
  59. <label>Charakterystyka:</label></br>
  60. <input type="checkbox" value="Redukcja dźwięków" name="characteristic[]" >Redukcja dźwięków
  61. <input type="checkbox" value="Bakteriostatyczna" name="characteristic[]" >Bakteriostatyczna
  62. <input type="checkbox" value="Antypoślizgowa" name="characteristic[]" >Antypoślizgowa
  63. <input type="checkbox" value="Ognioodporna" name="characteristic[]" >Ognioodporna
  64. </br></br>
  65.  
  66. <label for="content">Skład:</label><input name="content" type="text" style="width: 10%;" value="" >
  67. <label for=""></label>Gramatura runa:</label><input name="gr_fleece" type="text" style="width: 10%;" value="" ></br>
  68. <label for=""></label>Gramatura całkowita:</label><input name="gr_total" type="text" style="width: 10%;" value="" >
  69. <label for=""></label>Wysokość całkowita:</label><input name="height_total" type="text" style="width: 10%;" value="" ></br>
  70. <label for=""></label>Wysokość runa:</label><input name="height_fleece" type="text" style="width: 10%;" value="" >
  71. <label for=""></label>Ilość splotów:</label><input name="tuft" type="text" style="width: 10%;" value="" ></br>
  72. <label for=""></label>Klasa palności:</label><input name="fire_class" type="text" style="width: 10%;" value="" >
  73. <label for=""></label>Absorpcja dźwięku:</label><input name="sound_absorb" type="text" style="width: 10%;" value="" ></br>
  74.  
  75. </br></br>
  76. <label for="name">Opis</label><textarea name="description" rows="14" cols="120" value="" ></textarea>
  77. </br></br><input type="submit" value="' . __('Save') . '" /></td></tr>
  78. </form>';
  79.  
  80. echo '
  81. <script type="text/javascript">
  82. jQuery(document).ready(function($) {
  83. $("table .delete").click(function() {
  84. $(this).parent().parent().remove();
  85. return false;
  86. });
  87. </script>
  88. ';
  89. }
  90.  
  91. //Formularz do przeglądania wykładzin
  92.  
  93. function flif_browsing() {
  94. global $wpdb;
  95. $table = $wpdb->prefix . "fl_insert_floor";
  96.  
  97. $result = $wpdb->get_results("SELECT * FROM `wp_fl_insert_floor`") or die('Error3');
  98.  
  99. echo '<table summary="Properties" id="table1">';
  100. echo '<tr>';
  101. echo '<td><b>ID</b></td>';
  102. echo '<td><b>Nazwa</b></td>';
  103. echo '<td><b>Edytuj</b></td>';
  104. echo '<td><b>Typ obiektu</b></td>';
  105. echo '<td><b>Materiał</b></td>';
  106. echo '<td><b>Producent</b></td>';
  107. echo '<td><b>Opis</b></td>';
  108. echo '<td><b>Instalacja</b></td>';
  109. echo '<td><b>Charakterystyka</b></td>';
  110. echo '<td><b>Skład</b></td>';
  111. echo '<td><b>Gramatura runa</b></td>';
  112. echo '<td><b>Gramatura całkowita</b></td>';
  113. echo '<td><b>Wysokość runa</b></td>';
  114. echo '<td><b>>Wysokość całkowita</b</td>';
  115. echo '<td><b>Ilość pętli</b></td>';
  116. echo '<td><b>Klasa palności</b></td>';
  117. echo '<td><b>Absorbcja dźwięku</b></td>';
  118. echo '</tr>';
  119.  
  120. foreach ($result as $result1) {
  121. $id=$_POST['id'];
  122. echo '<tr>';
  123. echo '<td>'.$get_object_id = $result1->id.'</td>';
  124. echo '<td>'.$get_object_id = $result1->name.'</td>';
  125. echo '<td><a href="?id=$id">[klik!]</a></td>';
  126. echo '<td>'.$get_object_id = $result1->obj_box.'</td>';
  127. echo '<td>'.$get_object_id = $result1->material.'</td>';
  128. echo '<td>'.$get_object_id = $result1->producer.'</td>';
  129. echo '<td>'.$get_object_id = $result1->description.'</td>';
  130. echo '<td>'.$get_object_id = $result1->installation.'</td>';
  131. echo '<td>'.$get_object_id = $result1->characteristic.'</td>';
  132. echo '<td>'.$get_object_id = $result1->content.'</td>';
  133. echo '<td>'.$get_object_id = $result1->gr_fleece.'</td>';
  134. echo '<td>'.$get_object_id = $result1->gr_total.'</td>';
  135. echo '<td>'.$get_object_id = $result1->height_total.'</td>';
  136. echo '<td>'.$get_object_id = $result1->height_fleece.'</td>';
  137. echo '<td>'.$get_object_id = $result1->tuft.'</td>';
  138. echo '<td>'.$get_object_id = $result1->fire_class.'</td>';
  139. echo '<td>'.$get_object_id = $result1->sound_absorb.'</td>';
  140. echo '</tr>';
  141. echo '</br>';
  142. }
  143. echo '</table>';
  144. }
  145.  
  146. // Edycja wpisu do bazy danych