Javascript jQuery.ajax,而不是通过GET请求解析
我试图通过使用AJAX的GET请求来解析select选项字段中的值。我可以通过url解析该值——通过在jQuery函数中使用url警报检查url。但是我无法在执行GET请求的页面中检索该值 jQuery.ajaxJavascript jQuery.ajax,而不是通过GET请求解析,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图通过使用AJAX的GET请求来解析select选项字段中的值。我可以通过url解析该值——通过在jQuery函数中使用url警报检查url。但是我无法在执行GET请求的页面中检索该值 jQuery.ajax <script> $('.roomAvailable').change( function roomChanges(data) { var over = '<div id="overlaysRooms">' +
<script>
$('.roomAvailable').change(
function roomChanges(data) {
var over = '<div id="overlaysRooms">'
+ '<div id="loading"><div class="loaders"></div><div id="loadertextsearch">Vent Venligst...</div>'
+ '</div>';
$(over).appendTo('.rooms');
$('.rooms').addClass('overlaysRooms');
$.ajax({
type: 'GET',
data: {
'arrival': '<?php echo strval($_GET[' arrival ']); ?>',
'departure': '<?php echo strval($_GET['departure ']);?>',
'adults': $("#adults option:selected").val(),
'hotelId': '<?php echo strval($_GET[' hotelId ']);?>',
'room1': $("#rooms option:selected").val()
},
url: '<?php echo $baseUrl ?>/hotels/hotelRoomAvailable.php',
success: function(data) {
alert(this.url);
$('#roomsavailable').replaceWith(data);
$('#overlaysRooms').remove();
},
error: function(xhr) {}
})
});
</script>
hotelRoomAvailable.php:
<?php
var_dump(intval($_GET['adults']));
?>
警报值:
所以当我用var_dump检索成人的价值时,我什么也得不到。为什么当我在jQuery的警报消息中看到值被解析时,该值没有被解析到页面上?请将_GET变量添加到url
并完全删除类型和数据变量。您几乎肯定会从正在调用的PHP脚本中得到预期的结果
如果您插入,就在之前 $'roomsavailable'.replaceWithdata;,线路 警报$'roomsavailable'。长度?-昆廷
然后我得到0@Quentin–Troels Johannesen 问题是,$'roomsavailable'找不到任何具有该id的元素,因此没有任何东西可以替换为您获得的数据
您需要确保文档中存在具有该id的元素。尝试打开浏览器开发人员工具或使用第三方工具(如fiddler)查看实际发送到服务器的请求,以验证您的代码是否正在执行您认为正在执行的操作。alertthis.url;的值是多少@Quentin清除值是,例如,如果在$'roomsavailable'.replaceWithdata;,之前插入;,行警报$'roomsavailable'.length?然后我得到0@Quentina手动添加它们是一种可怕的方法。现有的处理数据的方法要好得多,因为它会自动避开数据。删除类型不会有什么不同。顺便说一句,我倾向于在url字符串上使用encodeUri,它负责转义和编码问题。我不认为这很可怕,因为给猫剥皮的方法不止一种……但我想说,我今天学到了一些东西,并将尝试你提到的@Quentin这种方法。Tks也是。有-@TroelsJohannesen-你会得到一个0,带有警报$'roomsavailable'。长度证明没有。加载文档时可能有,但运行代码时没有。可能您已经对其调用了replaceWith,它会将其删除。正是问题所在已被调用,因此之后不退出。非常感谢昆汀,谢谢你的解释@昆廷