javascript - 使用 AJAX 调用 PHP 函数

标签 javascript php jquery ajax

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

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

function columnChart(data_v){
  if(data_v.length >0){
    $(function () {
	  $('#higtchart_medie_gen').highcharts({
	    chart: {
		  type: 'column'
		 },
......
#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';
}
?>

如何从 Ajax 代码调用 test_name 函数? 非常感谢!

最佳答案

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

所以,要解决这个问题。只需将 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'],则不会调用。

关于javascript - 使用 AJAX 调用 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705229/

相关文章:

php - 每个 PHP 程序员都应该知道什么?

找不到 php 命令,但 php70 正在工作

javascript - 除非调整窗口大小或单击链接两次,否则同位素 J-query 不会自动排列?

javascript - 通过街道地址获取谷歌地图的坐标(纬度和经度) - Angular

javascript - 页面加载时,JQuery Stop Div 显示在屏幕上

javascript 脚本 innerhtml

javascript - 向下滚动页面后更改元素的CSS位置

javascript - js中如何将四个十六进制数改为 float ?

php - 使用 CodeIgniter 将图像上传到我的数据库

javascript - 在javascript中合并包含数组的N个数组