如果发送两个数据,Ajax实时搜索数据将无法正常工作

时间:2019-05-07 09:44:58

标签: php ajax

我有一个实时搜索表ajax,它从下拉列表发送数据。如果发送单个数据,则活动表正在工作。但是,如果有两个数据,它将无法正常工作。下面是无法正常工作的ajax的示例。

 $(document).ready(function(){

  load_dataa();

  function load_dataa(query1='',query2='')
  {

   $.ajax({
    url:"viewattendance.php",
    method:"POST",
    data:{query1:query1,query2:query2},
    success:function(data)
    {
     $('#table2 tbody').hide().html(data);
     $('#table2 tbody').hide().fadeIn( 1000);
    }
  })

 };
 $('#year').change(function(){
  $('#hidden_year').val($('#year').val());
  var query1 = $('#hidden_year').val();
  load_dataa(query1);
 });
 $('#month').change(function(){
  $('#hidden_month').val($('#month').val());
  var query2 = $('#hidden_month').val();
  load_dataa(query2);
 });
  });

和PHP文件

if($_POST["query1"] != '' && $_POST["query2"] != '' )
{

$query1=$_POST["query1"];
$query2=$_POST["query2"];
 $query = "
 SELECT user.user_type,user.user_id,user.first_name,attendance_year,attendance_month,one,two FROM attendance INNER JOIN user ON user.user_id = attendance.student_id
 WHERE   attendance_year IN (".$query1.") AND attendance_month IN (".$query2.")
 ";
}

问题是,当我尝试传递两个数据时,活动表无法正常工作。如果我这样传递一个数据,它将起作用(工作):

$(document).ready(function(){

  load_dataa();

  function load_dataa(query1='')
  {

   $.ajax({
    url:"viewattendance.php",
    method:"POST",
    data:{query1:query1},
    success:function(data)
    {
     $('#table2 tbody').hide().html(data);
     $('#table2 tbody').hide().fadeIn( 1000);
    }
  })

 };
 $('#year').change(function(){
  $('#hidden_year').val($('#year').val());
  var query1 = $('#hidden_year').val();
  load_dataa(query1);
 });
 $('#month').change(function(){
  $('#hidden_month').val($('#month').val());
  var query2 = $('#hidden_month').val();
  load_dataa(query2);
 });
  });

具有单个数据php文件(有效)

if($_POST["query1"] != '' )
{


$query1=$_POST["query1"];
 $query = "
 SELECT user.user_type,user.user_id,user.first_name,attendance_year,attendance_month,one,two FROM attendance INNER JOIN user ON user.user_id = attendance.student_id
 WHERE   attendance_year IN (".$query1.")
 ";
}

感谢任何形式的帮助。

编辑:通过编辑一些代码解决了该问题:

 $(document).ready(function(){

  load_dataa();

  function load_dataa(query1,query2)
  {

   $.ajax({
    url:"viewattendance.php",
    method:"POST",
    data:{query1:query1,query2:query2},
    success:function(data)
    {
     $('#table2 tbody').hide().html(data);
     $('#table2 tbody').hide().fadeIn( 1000);
    }
  })

 };
 $('#year').change(function(){
  $('#hidden_year').val($('#year').val());
  var query1 = $('#hidden_year').val();


 $('#month').change(function(){
  $('#hidden_month').val($('#month').val());
  var query2 = $('#hidden_month').val();
  load_dataa(query1,query2);
 });
  });
   });

1 个答案:

答案 0 :(得分:1)

检查代码并逐步获取

  1. 首先检查两个变量(query1,query2)是否都进入load_dataa()函数
  2. 现在检查两个变量($ _POST [“ query1”],$ _ POST [“ query2”])是否进入您的php文件(viewattendance.php)
  3. 如果您在php文件中同时获取了两个变量,而不是打印sql查询($ query)并在数据库中运行了该sql查询(如果使用本地主机而不是http://localhost/phpmyadmin/server_sql.php

enter image description here

  1. 如果sql查询运行成功而不是运行,则检查您是否成功:function(data){}部分。