2016-11-20 24 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 selectタグの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関数を呼び出すことができますか? ありがとうございます!

+0

私はそのポストと他の多くを見ました。私はこの問題を解決しようとしている4日間の円で実行していると私はsuccedていません。 – ster

答えて

0

ほとんど正しいですが、間違いが1つだけ間違っている場合は、その関数を呼び出すことを忘れてしまいます。あなたがしているのは、このファイルにデータを送信するだけです。

だから、これを修正しました。ただ、また、関数の外ISSETをチェックした方がよいでしょう、あなたの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() 
?> 

test_name()を追加します。

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

あなたは "アクション:値"のような単純なvarをあなたのデータに入れてみることができ、あなたのPHPでは$ _POST ['action] –

関連する問題