2017-08-10 5 views
0

chartjを使ってグラフを表示するためのコードがあります。 ajaxに変数を渡して、グラフが正しく表示されるようにする方法

$test = $_REQUEST['pass_date'];  

$res = pg_query("SELECT d.date, count(i.booking_id) from (select to_char(date_trunc('day', (date '$test' + offs)), 'yyyy-mm-dd') as date from generate_series(0,6,1) as offs) d left outer join booking i on d.date=to_char(date_trunc('day', i.booking_from), 'yyyy-mm-dd') where product_name = 'EG' group by d.date order by d.date asc;"); 

//execute query 
$result = pg_fetch_all($res); 

//loop through the returned data 
$data = array(); 
foreach ($result as $row) { 
    $data[] = $row; 
} 

print json_encode($data); 

このコード使用

は、データベースからデータを取得し、日付を表示し、その日にどのくらいの予約をカウントします。 pass_date変数iが「2017年8月20日」にpass_dateを挿入する場合、結果は[{この

ようになるだろう、例えば入力

このよう
<form id="form1" method="post"> 
<div class="input_1"> 
    <input type="text" name="pass_date" > 
    <span class="text-muted" style="font-size:10px">YYYY-MM-DD</span>         
</div> 
<input type="submit" onclick="submitForm('home-guards.php')" value="Home Guards" class="btn green" style="margin-top:20px"></input> 
<input type="submit" onclick="submitForm('event-guards.php')" value="Event Guards" class="btn green" style="margin-top:20px"></input> 

    <?php 
     if(isset($_POST['submit'])){ 
      $tfDate = $_POST['pass_date']; 
     } 
     if(isset($tfDate)){ 
      echo $tfDate; 
     } 
    ?></form> 

を使用して、インデックスからです「日付」:「2017-08-21」、「カウント」:「2」、「日付」:「2017-08-20」、「カウント」:「3」} "日付": "2017-08-23"、 "カウント": "1"}、{"日付": "2017-08-24"、 "count": "3"}、{"date": "2017-08-25"、 "count": "2"}、{"date": "2017-08-26"、 "count": "3 "}]

と私は完璧にやっている「2017年8月20日」チャートのような、特定の日付に$テストを変更する場合は、この

$(document).ready(function(){ 
$.ajax({ 
    url : "data_chart_booking_daily_eg.php", 
    type : "POST",  
    success : 
    function(data){ 
     console.log(data); 

     var inv_date = []; 
     var jumlah = [];    

     for(var i in data) { 
      inv_date.push(data[i].date); 
      jumlah.push(data[i].count);    
     } 

のようなJavaScriptとAjaxのファイルを持っているが、私は$テストを使用している場合チャートが表示されないので、$ test変数をajaxに渡す/渡す方法がわからないので、チャートが正しく表示されるようにします。助けてくれてありがとう、悪い英語を申し訳ありません。

答えて

0

それはjQueryですか? POST中にデータを送信していません。

まず、値の取得を容易にするためにそのフォームのビットを変更します。ここで私は、入力フィールドにid="pass_date"属性を追加しました:

<form id="form1" method="post"> 
<div class="input_1"> 
    <input type="text" id="pass_date" name="pass_date" > 
    <span class="text-muted" style="font-size:10px">YYYY-MM-DD</span> 

次に、あなたのPOSTでそれを送信する:あなたが答えるために

$.ajax({ 
    url : "data_chart_booking_daily_eg.php", 
    type : "POST", 
    data: {pass_date: $('#pass_date').val()}, //this will get value of input field that 
               //has id="pass_date" and send 
               //as $_POST['pass_date'] 
    success : 
    function(data){ 
+0

はあなたに感謝し、それが動作します。しかし、私が欲しいのは、pass_dateの値はインデックスからのものなので、ユーザーが入力を与えるとpass_dateの値はユーザー入力になります –

+0

HTMLフォームの入力ボックスから値の取り込みを含むように答えを更新しました。 –

+0

お返事ありがとうございます!それは私をたくさん助けます.. –

関連する問題