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.
function wp_wykladziny_init()
{
wp_register_style('wp-wykladziny-css', plugins_url('style.css', __FILE__));
wp_enqueue_style('wp-wykladziny-css');
}
add_action('init', 'wp_wykladziny_init');
define( 'FLIF_PATH', plugin_dir_path
( __FILE__ ) ); require FLIF_PATH.'flif_model.php';
defined( 'ABSPATH' ) or
die( 'Nie podłączaj mi się tu tym swoim zawirusowanym skryptem!!' );
/* Tworzy tabelę bazy danych dla wtyczki */
function flif_install() {
$table = $wpdb->prefix . "fl_insert_floor";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL, UNIQUE (`id`),
`obj_box` text NOT NULL,
`material` text NOT NULL,
`producer` text NOT NULL,
`installation` text NOT NULL,
`characteristic` text NOT NULL,
`content` text NOT NULL,
`gr_fleece` text NOT NULL,
`gr_total` text NOT NULL,
`height_total` text NOT NULL,
`height_fleece` text NOT NULL,
`tuft` text NOT NULL,
`fire_class` text NOT NULL,
`sound_absorb` text NOT NULL,
`description` text NOT NULL
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook(__FILE__, 'flif_install');
/** * Dodawanie wtyczki do panelu administracyjnego */
function flif_plugin_menu() {
add_menu_page('Wykładziny', 'Wykładziny', 'administrator', 'flif_settings', 'flif_display_settings');
add_submenu_page('flif_settings', __('Wprowadź produkt'), __('Wprowadź produkt'), 'edit_themes', 'flif_propert', 'flif_propert');
add_submenu_page('flif_settings', __('Przeglądaj wykładziny'), __('Przeglądaj wykładziny'), 'edit_themes', 'flif_browsing', 'flif_browsing');
}
add_action('admin_menu', 'flif_plugin_menu');
//Wyswietla formularz dodawania produktu do bazy
function flif_propert() {
if (isset($_POST["name"]) != "" ) {
$table = $wpdb->prefix."fl_insert_floor";
$description = strip_tags($_POST["description"], ""); $obj_box = serialize($_POST['obj_box']); //wrzuca tablice do jednego rekordu w tabeli mysql $installation = serialize($_POST['installation']); $characteristic = serialize($_POST['characteristic']); $height_total = strip_tags($_POST["height_total"], ""); $height_fleece = strip_tags($_POST["height_fleece"], ""); $fire_class = strip_tags($_POST["fire_class"], ""); $sound_absorb = strip_tags($_POST["sound_absorb"], "");
$wpdb->insert(
$table,
'name' => $name,
'obj_box' => $obj_box,
'material' => $material,
'producer' => $producer,
'installation' => $installation,
'characteristic' => $characteristic,
'content' => $content,
'gr_fleece' => $gr_fleece,
'gr_total' => $gr_total,
'height_total' => $height_total,
'height_fleece' => $height_fleece,
'tuft' => $tuft,
'fire_class' => $fire_class,
'sound_absorb' => $sound_absorb,
'description' => $description
)
);
}
Wrzucam resztę kodu, gdyż nie zmieścił się:
// adds a shortcode you can use: [insert-into-db]
add_shortcode('flif-db-insert', 'flif_insert_into_db');
echo '<h2>' . __
('Wprowadż wykładzinę') . '</h2>'; echo '<form action="?page=flif_propert" method="post">
<label for="name">Nazwa</label><input name="name" type="text" style="width: 50%;" value="" >
</br></br>
<label for="producer">Producent</label>
<select name = "producer">
<option>Altro</option>
<option>Balsan</option>
<option>Burmatex</option>
<option>Fatra</option>
<option>Forbo</option>
<option>Ideal</option>
<option>Lano</option>
<option>Lentex</option>
<option>Modulyss</option>
<option>Tarkett</option>
<option>Tecsom</option>
<option>Timzo</option>
<option>...inny</option>
</select>
</br></br>
<label>Typ obiektu:</label></br>
<input type="checkbox" value="Hotele i pensjonaty" name="obj_box[]" >Hotele i pensjonaty
<input type="checkbox" value="Obiekty sportowe" name="obj_box[]" >Obiekty sportowe
<input type="checkbox" value="Szkoły" name="obj_box[]" >Szkoły</br>
<input type="checkbox" value="Biura" name="obj_box[]" >Biura
<input type="checkbox" value="Domy i mieszkania" name="obj_box[]" >Domy i mieszkania
<input type="checkbox" value="Kina, teatry, restauracje" name="obj_box[]" >Kina, teatry, restauracje</br>
<input type="checkbox" value="Wojsko, policja" name="obj_box[]" >Wojsko, policja
<input type="checkbox" value="Sklepy" name="obj_box[]" >Sklepy
<input type="checkbox" value="Szpitale i służba zdrowia" name="obj_box[]" >Szpitale i służba zdrowia</br>
<input type="checkbox" value="Przemysł" name="obj_box[]" >Przemysł
<input type="checkbox" value="Laboratoria" name="obj_box[]" >Laboratoria
</br></br>
<label for="material">Materiał wykonania</label>
<select name = "material">
<option>Dywanowa</option>
<option>PVC Homogeniczna</option>
<option>PVC Heterogeniczna</option>
<option>Winylowa LVT</option>
<option>Linoleum</option>
</select>
</br></br>
<label>Instalacja:</label></br>
<input type="checkbox" value="Rolka" name="installation[]" >Rolka
<input type="checkbox" value="Płytka" name="installation[]" >Płytka
<input type="checkbox" value="Panel" name="installation[]" >Panel
</br></br>
<label>Charakterystyka:</label></br>
<input type="checkbox" value="Redukcja dźwięków" name="characteristic[]" >Redukcja dźwięków
<input type="checkbox" value="Bakteriostatyczna" name="characteristic[]" >Bakteriostatyczna
<input type="checkbox" value="Antypoślizgowa" name="characteristic[]" >Antypoślizgowa
<input type="checkbox" value="Ognioodporna" name="characteristic[]" >Ognioodporna
</br></br>
<label for="content">Skład:</label><input name="content" type="text" style="width: 10%;" value="" >
<label for=""></label>Gramatura runa:</label><input name="gr_fleece" type="text" style="width: 10%;" value="" ></br>
<label for=""></label>Gramatura całkowita:</label><input name="gr_total" type="text" style="width: 10%;" value="" >
<label for=""></label>Wysokość całkowita:</label><input name="height_total" type="text" style="width: 10%;" value="" ></br>
<label for=""></label>Wysokość runa:</label><input name="height_fleece" type="text" style="width: 10%;" value="" >
<label for=""></label>Ilość splotów:</label><input name="tuft" type="text" style="width: 10%;" value="" ></br>
<label for=""></label>Klasa palności:</label><input name="fire_class" type="text" style="width: 10%;" value="" >
<label for=""></label>Absorpcja dźwięku:</label><input name="sound_absorb" type="text" style="width: 10%;" value="" ></br>
</br></br>
<label for="name">Opis</label><textarea name="description" rows="14" cols="120" value="" ></textarea>
</br></br><input type="submit" value="' . __('Save') . '" /></td></tr>
</form>';
<script type="text/javascript">
jQuery(document).ready(function($) {
$("table .delete").click(function() {
$(this).parent().parent().remove();
return false;
});
</script>
';
}
//Formularz do przeglądania wykładzin
function flif_browsing() {
$table = $wpdb->prefix . "fl_insert_floor";
$result = $wpdb->get_results("SELECT * FROM `wp_fl_insert_floor`") or
die('Error3');
echo '<table summary="Properties" id="table1">'; echo '<td><b>ID</b></td>'; echo '<td><b>Nazwa</b></td>'; echo '<td><b>Edytuj</b></td>'; echo '<td><b>Typ obiektu</b></td>'; echo '<td><b>Materiał</b></td>'; echo '<td><b>Producent</b></td>'; echo '<td><b>Opis</b></td>'; echo '<td><b>Instalacja</b></td>'; echo '<td><b>Charakterystyka</b></td>'; echo '<td><b>Skład</b></td>'; echo '<td><b>Gramatura runa</b></td>'; echo '<td><b>Gramatura całkowita</b></td>'; echo '<td><b>Wysokość runa</b></td>'; echo '<td><b>>Wysokość całkowita</b</td>'; echo '<td><b>Ilość pętli</b></td>'; echo '<td><b>Klasa palności</b></td>'; echo '<td><b>Absorbcja dźwięku</b></td>';
foreach ($result as $result1) {
$id=$_POST['id'];
echo '<td>'.$get_object_id = $result1->id.'</td>'; echo '<td>'.$get_object_id = $result1->name.'</td>'; echo '<td><a href="?id=$id">[klik!]</a></td>'; echo '<td>'.$get_object_id = $result1->obj_box.'</td>'; echo '<td>'.$get_object_id = $result1->material.'</td>'; echo '<td>'.$get_object_id = $result1->producer.'</td>'; echo '<td>'.$get_object_id = $result1->description.'</td>'; echo '<td>'.$get_object_id = $result1->installation.'</td>'; echo '<td>'.$get_object_id = $result1->characteristic.'</td>'; echo '<td>'.$get_object_id = $result1->content.'</td>'; echo '<td>'.$get_object_id = $result1->gr_fleece.'</td>'; echo '<td>'.$get_object_id = $result1->gr_total.'</td>'; echo '<td>'.$get_object_id = $result1->height_total.'</td>'; echo '<td>'.$get_object_id = $result1->height_fleece.'</td>'; echo '<td>'.$get_object_id = $result1->tuft.'</td>'; echo '<td>'.$get_object_id = $result1->fire_class.'</td>'; echo '<td>'.$get_object_id = $result1->sound_absorb.'</td>'; }
}
// Edycja wpisu do bazy danych