从php

时间:2016-10-26 12:59:21

标签: javascript php wordpress get

我通过使用javascript通过我的网址传递了一个值,我试图通过使用php $_POST在另一个页面中访问该变量,但它无法正常工作

<a data-room-type-id="<?php echo $rooms->id; ?>" class="btn-book-now" href=""><?php echo $rooms->name; ?></a>

我想传输值data-room-type-id,下面显示用于传输值的javascript

tjq('.room-list').on('click', '.btn-book-now', function(e) {
        e.preventDefault();
        if (acc_data.booking_url) { alert(acc_data.booking_url);
            //var room_type_id = tjq(this).data('room-type-id');
            
            var roomid = tjq(this).data('room-type-id');
            alert("roomid = "+roomid);
            
            var room_type_id = '79';
            alert(room_type_id);
            
            tjq('input[name="action"]').remove();
            //booking_data = tjq("#check_availability_form").serialize();
            
            booking_data = 'accommodation_id=45&_wpnonce=32da73f035&date_from=10%2F26%2F2016&date_to=10%2F28%2F2016&rooms=1&adults=1&kids=0&child_ages%5B%5D=0';
            alert(booking_data);
            
            var form = tjq('<form method="get" action="' + acc_data.booking_url + '"></form>');
            form.append('<input type="hidden" name="booking_data" value="' + booking_data + '&room_type_id=' + room_type_id + '&roomid=' + roomid + '">');
            /*if ( acc_data.lang ) {
                form.append('<input type="hidden" name="lang" value="' + acc_data.lang + '">');
            }*/
            tjq("body").append(form);
            form.submit();
        } else {
            alert(acc_data.msg_no_booking_page);
        }
        return false;
    });

和代码中使用的javascript就在上面。

但在另一个页面中,我无法检索值roomid

网址看起来是这个

http://www.medhyaftravel.com/accommodation-booking/?booking_data=accommodation_id%3D45%26_wpnonce%3D32da73f035%26date_from%3D10%252F26%252F2016%26date_to%3D10%252F28%252F2016%26rooms%3D1%26adults%3D1%26kids%3D0%26child_ages%255B%255D%3D0%26room_type_id%3D79%26roomid%3D59903

2 个答案:

答案 0 :(得分:0)

您的表单为空从var表单中删除结束表单标记,并在隐藏变量添加后如下所示:

var form = tjq('<form method="get" action="' + acc_data.booking_url + '">');
        form.append('<input type="hidden" name="booking_data" value="' + booking_data + '&room_type_id=' + room_type_id + '&roomid=' + roomid + '">');
        form.append('</form>');

答案 1 :(得分:0)

您的表单使用method="get",因此$_POST为空。如果表单方法发布,您将只获得POST数据。对于GET请求,数据将位于$_GET。请在线阅读何时使用get以及何时使用post,这一点非常重要

$_GET['booking_data']将包含完整的预订数据字符串。

这可能不是你的意思。您正在将一个获取网址数据添加到表单域,然后再对其进行编码。

您可以将get url数据直接添加到用作操作的acc_data.booking_url。或者为每个条目创建隐藏的表单字段:

form.append('<input type="hidden" name="room_type_id" value="' + room_type_id + '">');
form.append('<input type="hidden" name="roomid" value="' + roomid + '">');

等等所有值