我通过使用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
网址看起来是这个
答案 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 + '">');
等等所有值