【问题标题】:Query from ajax call not working来自ajax调用的查询不起作用
【发布时间】:2013-12-19 04:40:14
【问题描述】:

请不要问我为什么使用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>';
    }

那么我在这里缺少什么?蒂亚!

【问题讨论】:

  • 你在运行 print_r 时得到了什么?
  • SELECT * FROM rendered_services WHERE rendered_date = '2013-12-19' 我得到了这个,当我尝试在我的服务器上运行它时它工作了!
  • 尝试将switch($_GET['call']){...} 放在retrievedate() 函数之后。
  • @Fred-ii- 对不起?结构会是什么样子?
  • 假设您的retrievedate() 函数的else 部分仍在ajax 帖子上运行,这似乎表明存在连接问题。

标签: php mysql ajax


【解决方案1】:

您正在从您的客户那里发布 ajax 帖子。但在functionko.php 文件中,您将其作为GET 处理。

 switch($_GET['call']){   

应该是

switch($_POST['call']){  

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

【讨论】:

  • @leonardeveloper:注释掉切换条件并触发retrievedate() 并检查您是否得到任何结果。您的页面对 POSTED 值没有任何依赖关系。
【解决方案2】:

不计算单引号中的变量。所以 $date 被替换为下面字符串中的值。

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

以下修改将起作用:

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

【讨论】:

    猜你喜欢
    • 2013-10-01
    • 2017-07-22
    • 2012-10-18
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    相关资源
    最近更新 更多