Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将所选表单值解析为jQuery.ajax调用_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 将所选表单值解析为jQuery.ajax调用

Javascript 将所选表单值解析为jQuery.ajax调用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一张下拉表——做一个分类电话 我无法在ajax中解析表单中当前选定的值。网址 表格: <form name="sortby"> <select name="order_by" onchange="myFunction()"> <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'choose') echo ' selected="selec

我有一张下拉表——做一个分类电话

我无法在ajax中解析表单中当前选定的值。网址

表格:

<form name="sortby">
    <select name="order_by" onchange="myFunction()">
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'choose') echo ' selected="selected"'; ?> value="choose">Sort By</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'OVERALL_VALUE') echo ' selected="selected"'; ?> value="OVERALL_VALUE">Most Popular</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'PRICE') echo ' selected="selected"'; ?> value="PRICE">Price (low to high)</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'PRICE_REVERSE') echo ' selected="selected"'; ?> value="PRICE_REVERSE">Price (high to low)</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'QUALITY') echo ' selected="selected"'; ?> value="QUALITY">Rating</option>
    </select>
</form>
阿贾克斯

    <script>
    function myFunction() { 
    $('.searchtable').addClass('hide');
    $('.spinner').removeClass('hide');

    $.ajax({
        type: 'GET',
        data: {'name':'<?php echo $name;?>','arrival':'<?php echo $arrival;?>','departure':'<?php echo $departure;?>','guests':'<?php echo $numberOfGuests;?>','order_by':$('#order_by').value},
        url: 'hotels/hotelSortBy.php',


        success: function (data) {
            //alert('data loaded succesfully');
            alert(this.url);

            $('.searchtable').replaceWith(data);

        },
        error: function (xhr) {
                                   alert('data not loaded');

            // do what ever you want to do when error happens
        }
 })

 .done(function() {
 $('.spinner').addClass('hide');
 $('.searchtable').removeClass('hide');
 });

 }
 </script> 
hotelSortBy.php

<?php 
$url  = 'xxx';
$url .= '&cid=55505';
$url .= 'xxxx';
//$url .= '&customerUserAgent='[xxx]
//$url .= '&customerIpAddress='[xxx]
$url .= '&locale=da_DK';
$url .= '&currencyCode=DKK';
$url .= '&destinationString=' .  strval($_GET['name']);
$url .= '&supplierCacheTolerance=MED_ENHANCED';
$url .= '&searchRadius=50';
$url .= '&arrivalDate=' . strval($_GET['arrival']);
$url .= '&departureDate=' . strval($_GET['departure']);
$url .= '&room' . strval($_GET['rooms']) . '=' . strval($_GET['numberOfGuests']) . ',,';
$url .= '&sort='. strval($_GET['order_by']);
$url .= '&numberOfResults=20';
$header[] = "Accept: application/json";
$header[] = "Accept-Encoding: gzip";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header );
 curl_setopt($ch,CURLOPT_ENCODING , "gzip");
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
 curl_setopt( $ch, CURLOPT_URL, $url );
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
 $response = json_decode(curl_exec($ch), true);
 include '/hotelTables.php';

 ?>
表单中的Order_by value不会粘贴到ajax数据中以应用于url。

首先,您需要一个id,而不仅仅是名称属性:

<select id="order_by" name="order_by" onchange="myFunction()">

         ^^^^ id

我质疑在那里打印所有PHP是否明智。我认为这些可能应该是表单中的字段,即使是隐藏字段,即..

检查代码中的位置。当您在表单中选择一个选项时-我想将所选选项值解析为url:其中显示hotels/hotelSortBy.php?&order_by=mixed data部分,并将查询参数显式放入url中只是要求某些浏览器删除一些参数。尝试了此操作,但未解析该值。键入:'GET',data:{'name':,'arrival':,'department':,'guests':$'order'u by'.value},url:'hotels/hotelSortBy.php',@TroelsJohannesen这将确保下拉列表中的值进入ajax请求。我不知道您的ajax请求是否有效,因为您没有发布$.ajax函数的完整代码,也不是你的hotelSortBy.php在做什么……所以我想你现在遇到的任何错误都是在$.ajax或hotelSortBy中缺少的。php@TroelsJohannesen您也没有明确说明您是在myFunction中尝试ajax还是在做什么,但我想这就是它应该做的。
$.ajax({
    type: 'GET',
    data:
    {
       'order_by':$('#order_by').val(),
       'name': '<?php echo $name;?>',
       'arrival': '<?php echo $arrival;?>',
       'departure': '<?php echo $departure;?>',
       'guests': '<?php echo $numberOfGuests;?>'
    },
    url: 'hotels/hotelSortBy.php',
    .....
$.ajax({
    type: 'GET',
    data: {'name':'<?php echo $name;?>','arrival':'<?php echo $arrival;?>','departure':'<?php echo $departure;?>','guests':'<?php echo $numberOfGuests;?>'},
    url: 'hotels/hotelSortBy.php?&order_by='+$('form').find('select').val(),