如何在Wordpress管理员中捕获表单值

时间:2018-11-17 06:30:19

标签: wordpress forms

我正在创建一个插件,其中我从前端表单提交(联系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"> 

我正在尝试捕获动作,但是如果我这样做,我将无法获取表单值。

你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

您正在将数据发布到页面,因此您需要修改操作。 POSTGET方法相似,但工作方式不同。 更改代码:

<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>