ajax调用没有在php中执行

时间:2014-04-15 15:35:35

标签: javascript php jquery ajax

我发送了一些被选中的复选框,它们的值带有ajax调用的下一个php页面。但在上面的代码中我无法将其发送到ajax调用

代码如下

<html>
<head>
<title>Insert title here</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
    function get_check_value() {
        var c_value = [];
        $('input[name="services"]:checked').each(function () {
            c_value.push(this.value);
        });
        return c_value.join(',');
    }
    $(document).ready(function(){
    $('#btnSubmit').on('click', function () {
    alert("hi");
        //var os = $('#originState').val();
      \  //var c = $('#commodity').val();
        //var ds = $('#destState').val();
        var ser = get_check_value();
        //var queryString = "os=" + os;
        var queryString = "&ser=" + ser;
        alert("hi");
       $.ajax({
       //alert("ajax");
        type: "POST",
        url: "sortingajax.php",
        data: "query=" + queryString,
        success: function (b) {
           // alert(a+' ok. '+b)
            $('#results').html(b);
            console.log(b);
        }
    });

  });
 });

</script>
<form name="searchForm">
    <input type="checkbox" name="services" value="twic" />TWIC
    <br/>
    <input type="checkbox" name="services" value="enclosedTrucking" />Enclosed Trucking
    <br/>
    <input type="checkbox" name="services" value="flatBedTrucking" />Flat Bed Trucking
    <br/>
    <input type="submit" id="btnSubmit" value="Submit" />
</form>
<div id="results">
</div>
</body>
</html>

在上面的代码中。当我从页面中选择复选框,然后单击submit.i想要通过ajax调用将它们传递到下一个php页面。但是它不会进入下一页并且没有回复....

请帮助伙伴

ajaxphp页面

<?php

include('connection.php');
$query=$_GET['query'];
echo $query;
$countsql='SELECT * FROM XML';
    $countsql1=mysql_query($countsql);
$numrows = mysql_num_rows($countsql1);  
$countArray2=array();
print($countsql);
while($row = mysql_fetch_array($countsql1)) {
    // Append to the array


    $countArray2[] = $row;



    //echo $row['PID']."<BR />";
}

?>
<?php
foreach($countArray2 as $array)
{



?>
<div class="search">
hi
</div>

<?php $i++; } ?>

3 个答案:

答案 0 :(得分:1)

data: "query=" + queryString,错误,因为"query=" +是语法错误。它应该是:

 var queryString = "os="+os+"&ser="+ser;

然后

 data : queryString,

或者您可以将其格式化为:

  data : {
      'ser' : ser,
      'os'  : os
 }

然后有一个事实是你的Ajax正在使用POST,但是你试图用PHP中的$ _GET而不是$ _POST或$ _REQUEST来读取请求。

答案 1 :(得分:0)

你可以尝试这两个修正:

var data : "?ser=" + ser; // put '?' instead of '&'

或更多jQuery方式:

 data : { ser : ser },

你错过了ajax中的dataType

dataType :  'html',

在php方面,因为这是一个帖子请求,所以你必须把它放在:

$query=$_POST['ser'];

答案 2 :(得分:0)

也许您忘记阻止“提交”按钮的默认行为:

<script type="text/javascript">
function get_check_value() {
    var c_value = [];
    $('input[name="services"]:checked').each(function () {
        c_value.push(this.value);
    });
    return c_value.join(',');
}
$(document).ready(function(){
$('#btnSubmit').on('click', function (evt) {

evt.preventDefault();

alert("hi");
    //var os = $('#originState').val();
  \  //var c = $('#commodity').val();
    //var ds = $('#destState').val();
    var ser = get_check_value();
    //var queryString = "os=" + os;
    var queryString = "&ser=" + ser;
    alert("hi");
   $.ajax({
   //alert("ajax");
    type: "POST",
    url: "sortingajax.php",
    data: "query=" + queryString,
    success: function (b) {
       // alert(a+' ok. '+b)
        $('#results').html(b);
        console.log(b);
    }
});

  });
 });

</script>