2017-07-11 12 views
2

ここで、同じファイル内の別のスクリプト(ウィジェットスクリプト)にajaxという値を渡したいとします。私は正常にajax呼び出しとジャッジメントウィジェットを1ページで実行しました。私は正常にphpのエコーを使用してajax呼び出しから得られたデータを印刷することができます。 echoを使って値を表示する代わりに、私はjustgage widgetに同じ値を使用したいと思います。ここで私は自分のコードを共有しています。 data.phpファイルはここにphp-ajaxがjsonデータを呼び出し、そのデータをjguage jsに渡してその値を表示する

<?php 
    $selm=1; 
?> 
<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <script type="text/javascript" src="js/jquery.js"></script> 
     <script src="js/jquery.min.js"></script> 
     <script src="js/raphael-2.1.4.min.js"></script> 
     <script src="js/justgage.js"></script> 
     <script type="text/javascript" src="js/jquery.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <style type="text/css"> 
      #divDownloadOuter{ 
       width: 55%; 
       height:50%; 
       clear: both; 
      } 
     </style> 
     <script type="text/javascript"> 
      $(window).load(function() { 
       myFunction(); 
      }); 
     </script> 
     <script> 
      var d; 
      function myFunction() { 
       setInterval(function(){ 
        $.ajax({ 
         url: "datavalues.php?id=1&selm=<?php echo $selm ?>", 
         success: function(result){ 
          ip = JSON.parse(result); 
          sr = parseFloat(ip["srno"]); 
          document.getElementById("demo1").innerHTML = sr; 
          document.getElementById("demo2").innerHTML = sr; 
         } 
        }); 
       }, 2000); 
      } 
     </script> 
    </head> 
    <body> 
     <div id="divDownloadOuter"> 
      <div id="jgDownload1"></div> 
     </div> 
     <script> 
      document.addEventListener("DOMContentLoaded", function(event) { 
       var gD1 = new JustGage({ 
        id: "jgDownload1", 
        value: 27, 
        decimals: 2, 
        min: 0, 
        max: 100, 
        valueFontFamily: "Georgia", 
        valueFontSize: "150px", 
        valueFontColor: "orange", 
        label: "%", 
        labelFontsize:"10px", 
        labelFontColor:"white", 
        width: 100, 
        height: 100, 
        relativeGaugeSize: true, 
        gaugeWidthScale: 0.8, 
        levelColors: [ 
         "#E63454", 
         "#AC001F", 
         "#F6AD37", 
         "#B87200", 
         "#24A081", 
         "#007759", 
         "#026071", 
         "#015C71" 
        ], 
        pointer: true, 
        counter: true, 
       }); 
      }); 
     </script> 
     <h3>value using element by id</h3> 
     <span id="demo1"></span> 
     <?php echo "<span id=\"demo2\"></span>"; ?> 
    </body> 
</html> 

datavalues.phpファイルですここで私は簡単に「スパンID」および「PHPのエコー」メソッドと私のdata.phpファイルの値を表示することができ、ここで

<?php 
//all values for selected meter encoded and retrive from dashboard 2 

    $con=mysqli_connect("localhost","root","digi","gmbg"); 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    if (isset($_GET['selm'])){ 
     $selm=$_GET['selm']; 
     $res3 = mysqli_query($con ,"SELECT * FROM meterstatus where `mtr_no` LIKE '$selm' and did='kirti' order by srno desc limit 1"); 
     $row3= mysqli_fetch_assoc($res3); 
     echo json_encode($row3); 
    } 
    mysqli_close($con); 
?> 

です。しかし、私はジャッジウィジェットのその価値を使って見たいと思っています。私はこのajaxコールデータ値を別のjs(justgage)に渡すことはできません。私はすべての方法を試したが、その表示は "未定義"である。これに関する解決策はありますか?

+0

使用リフレッシュ機能gD1.refresh(40) – JYoThI

答えて

3

リフレッシュ機能gD1.refresh(40)たとえば、ajaxの代わりにsetTimeoutを使用しました。

アヤックス:

refresh function gD1.refresh(response_data) // response_data is dynamically 

var gD1 =''; 
 

 
document.addEventListener("DOMContentLoaded", function(event) { 
 
       gD1 = new JustGage({ 
 
        id: "jgDownload1", 
 
        value: 27, 
 
        decimals: 2, 
 
        min: 0, 
 
        max: 100, 
 
        valueFontFamily: "Georgia", 
 
        valueFontSize: "150px", 
 
        valueFontColor: "orange", 
 
        label: "%", 
 
        labelFontsize:"10px", 
 
        labelFontColor:"white", 
 
        width: 100, 
 
        height: 100, 
 
        relativeGaugeSize: true, 
 
        gaugeWidthScale: 0.8, 
 
        levelColors: [ 
 
         "#E63454", 
 
         "#AC001F", 
 
         "#F6AD37", 
 
         "#B87200", 
 
         "#24A081", 
 
         "#007759", 
 
         "#026071", 
 
         "#015C71" 
 
        ], 
 
        pointer: true, 
 
        counter: true, 
 
       }); 
 
      }); 
 
      
 
      setTimeout(function(){ gD1.refresh(74); },1000);
<script src="//cdn.jsdelivr.net/raphael/2.1.2/raphael-min.js"></script> 
 
<script src="//cdn.jsdelivr.net/justgage/1.0.1/justgage.min.js"></script> 
 
<body> 
 
    <div id="divDownloadOuter"> 
 
      <div id="jgDownload1"></div> 
 
     </div> 
 
    
 
</body>

+0

アヤックス成功部分に非常にこのコードを追加し、あなたにJYoThiに感謝...私はJUSあなたのリフレッシュラインを使用し、それはまたajaxで働いた。実際に私は定期的にajax呼び出しデータを必要とします。しかし、本当にありがとう。 –

+0

私は1つの値しか取ることができません。 1回の呼び出しで2つの値にアクセスすることはできません。 –

+0

あなたはサーバー側から何を返すのですか?レスポンスデータの表示 – JYoThI

関連する問題