2016-11-20 73 views
1

我已阅读关于我的问题的所有主题,但无法解决我的问题。我想要使​​用jQuery AJAX获取php函数结果。使用AJAX调用PHP函数

function fetch_select(){ 
 
    val_name = $('#name').val(); 
 
    $.ajax({ 
 
    type: 'POST', 
 
\t url: 'include/get_db.inc.php', 
 
\t data: { 
 
      name: val_name, 
 
\t }, 
 
\t success: function (response) { 
 
\t document.getElementById('higtchart_medie_gen').innerHTML=response; 
 
\t columnChart(JSON.parse(response)); 
 
    } 
 
    }); 
 
} 
 

 
function columnChart(data_v){ 
 
    if(data_v.length >0){ 
 
    $(function() { 
 
\t $('#higtchart_medie_gen').highcharts({ 
 
\t  chart: { 
 
\t \t type: 'column' 
 
\t \t }, 
 
......
#name是选择标签ID。 我对get_db.inc.php代码:

<?php 
 
function test_name() { 
 
    $ret = []; 
 
    if(isset($_POST['name'])){ 
 
    $name = $_POST['name']; 
 
    $sql = "SELECT 
 
      ...... 
 
      WHERE ID = $name "; 
 
    $result = $conn->query($sql); 
 
    if($result->num_rows > 0){ 
 
     while($row = $result->fetch_assoc()) { 
 
     $ret [] = [$row['NAME'] . ' ' . $row['LASTN'], floatval($row['AVGG'])]; 
 
     } 
 
    } 
 
    } 
 
    if(count($ret) >1) echo json_encode($ret); 
 
    else echo 'Not working'; 
 
} 
 
?>

我怎么能说TEST_NAME功能从Ajax代码? 非常感谢!

+0

我看到那篇文章和其他许多人。我跑了4天试图解决这个问题,我没有成功。 – ster

回答

0

你几乎正确,但只有一个错误是你忘记调用该函数。你所做的只是将数据发送到这个文件。

所以,要解决这个问题。只需添加test_name()get_db.inc.php

<?php 
     function test_name() { 
      $ret = []; 
      if(isset($_POST['name'])){ 
       $name = $_POST['name']; 
       $sql = "SELECT 
       ...... 
       WHERE ID = $name "; 
       $result = $conn->query($sql); 
       if($result->num_rows > 0){ 
        while($row = $result->fetch_assoc()) { 
          $ret [] = [$row['NAME'] . ' ' . $row['LASTN'],floatval($row['AVGG'])]; 
        } 
       } 
      } 
      if(count($ret) >1) echo json_encode($ret); 
      else echo 'Not working'; 
    } 

    test_name() 
?> 

而且这将是更好地检查功能外isset。

function test_name ($name) { 
    $ret = []; 
    $sql = "SELECT 
    ...... 
    WHERE ID = $name "; 
    $result = $conn->query($sql); 
    if($result->num_rows > 0){ 
      while($row = $result->fetch_assoc()) { 
       $ret [] = [$row['NAME'] . ' ' . $row['LASTN'],floatval($row['AVGG'])]; 
      } 
    } 
    if(count($ret) >1) echo json_encode($ret); 
    else echo 'Not working'; 
} 

if(isset($_POST['name'])){ 
    test_name($_POST['name']) 
} 

这会让你的功能变得纯粹。稍后调试将更容易,如果您没有$_POST['name'],它将不会调用。

+0

在我的get_db.inc.php文件中将会有更多的函数,我想指出ajax代码来调用我喜欢的函数。 – ster

+0

你可以尝试把你的数据放入ajax中,像“action:value”这样的简单变量,然后在你的php中对这个$ _POST ['action]进行测试 –