来自ajax调用的查询无效

时间:2013-12-19 04:40:14

标签: php mysql ajax

请不要问为什么我使用mysql_*函数。我现在只需要使用它,所以请不要建议mysqli_*函数和PDO因为我知道这一点。
我的问题是我的查询不返回任何数据。但是当我试图在我的服务器中运行sql时它起作用,所以我只是不知道我现在缺少什么。所以请帮忙。
这是我的script

   $(document).on('click','#btn-generate-pdf',function(){
        var date = $('#service-date').val(),
            dataString = "date="+ date;
            $.ajax({
                type: "POST",
                url: "functionko.php?call=retrievedate",
                data: dataString,
                success:function(data){
                    $('#services-container').html(data);
                }
            });         
    });

这是我的functionko.php

   switch($_GET['call']){   
  case 'test':
    checkuser();
     break;
  case 'getuser';
    getuser();  
    break;
  case 'paybill';
    paybill();
    break;
  case 'retrievedate';
    retrievedate(); //<-----
    break;  
  default:
    break;
 }

    function retrievedate(){
    $date = '2013-12-19';
    //$date = $_POST['date'];
    $sql = "SELECT * FROM rendered_services WHERE rendered_date = '$date'";
    $result = mysql_query($sql);
    $data= array();
    print_r($sql);
    if($result){
        while($row = mysql_fetch_assoc($result)){
            echo $row['client_name'];
        }
    }else{
        echo '
        <table border="0"  width="100%" cellpadding="0" cellspacing="0"  class="display" id="attendance" class="jtable" >       
            <thead>
                <tr>
                    <th>Client Name</th>
                    <th>Service Name</th>                       
                    <th>Date</th>
                    <th>Therapist</th>
                    <th>Status</th>
                    <th>Price</th>
                    <th>Subtotal</th>
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>';
    }

那么我在这里缺少什么? TIA!

2 个答案:

答案 0 :(得分:2)

您正在向您的客户发送ajax帖子。但是在functionko.php文件中,您将其处理为GET。

 switch($_GET['call']){   

应该是

switch($_POST['call']){  

我建议您将ajax请求类型从POST更改为GET并检查其是否正常工作。

答案 1 :(得分:0)

不评估单引号中的

变量。所以$ date是用以下字符串中的值替换的。

$sql = "SELECT * FROM rendered_services WHERE rendered_date = '$date'";

以下修改将起作用:

    $sql = "SELECT * FROM rendered_services WHERE rendered_date = '".$date."'";