我正在创建一个插件,其中我从前端表单提交(联系form7)中添加数据库值,并通过wp_list_tables列出这些值
上面提到的情况很完美
现在我试图更新这些值,所以当我单击编辑功能时,我将通过捕获$ _GET中的ID并在表单中列出这些值来打开表单
但是在这里我想更新这些值,而且我不确定如何执行此任务以获取表单值。.我的意思是我应该在这里写什么动作
下面是我的代码
public function booking_details_page(){
$this->booking_id = (int) $_GET['booking_id'];
$bid = $this->booking_id;
global $wpdb;
$myrows = $wpdb->get_results( "SELECT * FROM dF5Bt_taxi_booking WHERE booking_id ='$bid'" );
?>
<div class="wrap">
<div id="icon-users" class="icon32"></div>
<h2>Blacktaxi Booking Page</h2>
<?php
foreach($myrows as $row) {
$booking_name = $row->booking_name;
$booking_email = $row->booking_email;
$booking_phone = $row->booking_phone;
$booking_from = $row->booking_from;
$booking_to = $row->booking_to;
$booking_date = $row->booking_date;
$booking_status = $row->booking_status;
$booking_car = $row->booking_car;
$booking_days = $row->booking_days;
$booking_night = $row->booking_night;
$booking_pickup_add = $row->booking_pickup_add;
}
echo '<form method="POST" action="?page=blacktaxi-bookings.php&action=confirm">
<table>
<tr>
<td><label>Booking ID : </label></td>
<td><input name ="booking_id" type="text" value="'.$bid.'" disabled></td>
<td><label>Customer Name : </label></td>
<td><input type="text" name ="booking_name" value="'.$booking_name.'"></td>
</tr>
<tr>
<td><label>Customer E-mail: </label></td>
<td><input type="text" name ="booking_email" value="'.$booking_email.'"></td>
<td><label>Customer Phone (+91): </label></td>
<td><input type="text" name ="booking_phone" value="'.$booking_phone.'"></td>
</tr>
<tr>
<td><label>Booking From : </label></td>
<td><input type="text" name ="booking_from" value="'.$booking_from.'" disabled></td>
<td><label>Booking To : </label></td>
<td><input type="text" name ="booking_to" value="'.$booking_to.'" disabled></td>
</tr>
<tr>
<td><label>Booking Date(yyyy-mm-dd): </label></td>
<td><input type="text" name ="booking_date" value="'.$booking_date.'"></td>
<td><label>Car Type : </label></td>
<td><select name="cars">
<option value="'.$booking_car.'">'.$booking_car.'</option>
<option value="Sedan">Sedan</option>
<option value="Premium Sedan">Premium Sedan</option>
<option value="SUV">SUV</option>
<option value="Premium SUV">Premium SUV</option>
</select>
</td>
</tr>
<tr>
<td><label>Days : </label></td>
<td><input type="text" name ="booking_days" value="'.$booking_days.'"></td>
<td><label>Night : </label></td>
<td><input type="text" name ="booking_night" value="'.$booking_night.'"></td>
</tr>
<tr>
<td><label>Pick Up Address: </label></td>
<td><textarea name ="booking_pickup_add" class="widefat" cols="40" rows="3" value="'.$booking_pickup_add.'"></textarea></td>
<td></td>
<td></td>
</tr>
<tr>
<td><input type="submit" value="Confirm Booking" class="button button-primary button-large" name="btn-confirm-booking"/></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</form>';
?> </div>
<?php
}
}
以表格形式
<form method="POST" action="?page=blacktaxi-bookings.php&action=confirm">
我正在尝试捕获动作,但是如果我这样做,我将无法获取表单值。
你能帮忙吗?
答案 0 :(得分:1)
您正在将数据发布到页面,因此您需要修改操作。 POST
和GET
方法相似,但工作方式不同。
更改代码:
<form method="POST" action="?page=blacktaxi-bookings.php&action=confirm">
对此:
您还可以仅为操作设置目标页面,而无需使用querystring,然后在php页面中设置如何处理后操作。例如:
<form method="POST" action="blacktaxi-bookings.php">
<?php
if(isset($_POST['action']) && $_POST['action'] === 'confirm'){
// your code here
}
?>
注意:您需要将操作参数传递给页面,要实现此目的,可以使用将与表单数据一起发布的隐藏输入字段:
<form method="POST" action="blacktaxi-bookings.php">
<input type="hidden" name="action" value="confirm">
</form>