2017-01-31 7 views
3

私は非常にうまく動作するこのコードを持っています。しかし、私はmysqlを使いたがっていました。PHPのmysql結果をjavascript変数

<?php if (date('w') == 2) { { ?> 
<script> $(function() { 
var times = [ 
// mysql import start 
{'id': '1', 'name': 'Mardi 5H55', 'end': new Date('2017-01-31 05:55:00'),}, 
{'id': '2', 'name': 'Mardi 8H40', 'end': new Date('2017-01-31 08:40:00'),}, 
{'id': '3', 'name': 'Mardi 11H30', 'end': new Date('2017-01-31 11:30:00'),}, 
{'id': '4', 'name': 'Mardi 14H05', 'end': new Date('2017-01-31 14:05:00'),} 
// mysql import end 
]; 
     // Initialize the table values 
     $.each(times, function(key, value) { 
      $('#mau-mpl').append('<tr><td>'+value.name+'</td><td>Hérault Transports (Ruban Bleu)</td><td>Montpellier</td><td><span id="player-'+value.id+'-expiration" class="label label-primary">Chargement encours...</span></td></tr>'); 
     }); 
     function countdown() 
     { 
      var now = new Date(); 
      console.log('updating time'); 

      $.each(times, function(key, value) { 
       var left = value.end - now; 
       var days = Math.floor(left/(1000 * 60 * 60 * 24)); 
       var hours = Math.floor((left % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
       var minutes = Math.floor((left % (1000 * 60 * 60))/(1000 * 60)); 
       var seconds = Math.floor((left % (1000 * 60))/1000); 

       displayTime = ''; 
       if (days > 0) { 
        displayTime = + days + " jr "; 
       } 
if (minutes > 0) { 
       displayTime = displayTime + hours + " H " + minutes + " Mn " + seconds + " Sec "; 
} 
       echo = "Deja parti"; 


       $('#player-'+value.id+'-expiration').text(displayTime) 
      }); 
     } 
     timer = setInterval(countdown, 1000);   
    });</script><?php } } ?> 

あなたは私が入れたい私のデータを見るとわかるようにMySQLのインポート後を開始している。ここで

は動作するコードです。 私は、MySQLからデータをフェッチするPHPファイルを作って、私はこの結果を持っている:

  • { 'ID': '1'、 '名前': 'マルディ5H'、 '最後':新しい日付( '2017 ''、 'name': 'Mardi 6H'、 'end':new Date( '01731 05:00:00')、}、
  • {'id': '2'、 'name'新しい日付( '017-01-31 07:00:00')、{'id': '3'、 'name': 'Mardi 7H'、 'end': }、

PHPファイルは、次のとおり

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "horaires"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } 
$sql = "SELECT id, jourheure, name, depart, arrivee FROM 2_mardi"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
// {'id': '1', 'name': '5H', 'end': new Date('2017-01-31, 05:55:00'),},"; 
echo "{'id': '" . $row["id"]. "', 'name': '" . $row['name'] ."', 'end': new Date('" . $row["jourheure"]. "" . $row["depart"]. "'),},<br>"; } 
} $conn->close(); 
?> 

+---+----------+---------------------+ 
| 1 | Mardi 5H | 2017-01-31 05:00:00 | 
+---+----------+---------------------+ 
| 2 | Mardi 6H | 2017-01-31 06:00:00 | 
+---+----------+---------------------+ 
| 3 | Mardi 7H | 2017-01-31 07:00:00 | 
+---+----------+---------------------+ 

"mysql import start"と "mysql import end"の間のjavascript変数にどのように結果を入れますか?

+0

'var javascript_var = <?php echo $ your_value;?>'。 'json_encode()'は簡単にするのに役立ちます。 –

答えて

1

あなたはこれを行うことができます。

var js = <?php echo "{'id': '" . $row["id"]. "', 'name': '" . $row['name'] ."', 'end': new Date('" . $row["jourheure"]. "" . $row["depart"]. "')}"; ?> 

しかし、警告、私は最後にあなたのオブジェクトに不正な文字を削除します。

echo "{'id': '" . $row["id"]. "', 'name': '" . $row['name'] ."', 'end': new Date('" . $row["jourheure"]. "" . $row["depart"]. "'),},<br>"; } 
---------------------------------------------------------------------------------------------------------------------------------^-^^^^^ 
+0

こんにちは@ R3Tepあなたのコードは私に残りの時間を表示しません – Viktor

0

あなたはたくさんのdiferent方法、AJAX、embebedでVARを設定することができますJavaScriptコード内のJavaScriptコード...

PHPオブジェクトまたはvarをjavascriptにするには、オブジェクトをPHPコードのJSONにシリアル化する必要があります。次にJSON文字列を設定してこれを変換する必要があります文字列を有効なjavascriptオブジェクトに変換します。

あなたはjavascriptのコードブロック

のindex.php

<?php 
    $result = getData() // your data like you want =>[ multiple objects ] 
    $resultJSON = json_encode($result); // "[{..},{...}]" 
?> 
<script> 
    var jsondata = parse.JSON('<?php echo $resultJSON ?>') ; 
</script> 

にJSONを解析することができますが、私は/ htmlのよりよいスライスと思い、今ならばJSONはこの

"{'propertyname':'stringvalue','property2':true,'property3':null,'property':[...]}" 

のような文字列でありますPHPコードからjavascriptコードを取得し、例えばajaxからvarsを取​​得します。

0

PHPスクリプトへのAJAX呼び出しを使用して、データをJavascript変数に格納できます。 jQueryのを使用して、AJAX呼び出しは、以下

<?php if (date('w') == 2) { { ?> 
<script> 
     $(function() { 
      var times = $.ajax({ 
       url: 'api.php', //the script to call to get data   
       data: "", //you can insert url argumnets here to pass to api.php 
       //for example "id=5&parent=6" 
       dataType: 'json', //data format  
       success: function(data) //on recieve of reply 
       { 
        return data; 
       } 
      }); 
      $.each(times, function(key, value) { 
       $('#mau-mpl').append('<tr><td>' + value.name + '</td><td>Hérault Transports (Ruban Bleu)</td><td>Montpellier</td><td><span id="player-' + value.id + '-expiration" class="label label-primary">Chargement encours...</span></td></tr>'); 
      }); 

      function countdown() { 
       var now = new Date(); 
       console.log('updating time'); 
       $.each(times, function(key, value) { 
        var left = value.end - now; 
        var days = Math.floor(left/(1000 * 60 * 60 * 24)); 
        var hours = Math.floor((left % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
        var minutes = Math.floor((left % (1000 * 60 * 60))/(1000 * 60)); 
        var seconds = Math.floor((left % (1000 * 60))/1000); 
        displayTime = ''; 
        if (days > 0) { 
         displayTime = +days + " jr "; 
        } 
        if (minutes > 0) { 
         displayTime = displayTime + hours + " H " + minutes + " Mn " + seconds + " Sec "; 
        } 
        echo = "Deja parti"; 
        $('#player-' + value.id + '-expiration').text(displayTime) 
       }); 
      } 
      timer = setInterval(countdown, 1000); 
     }); 
    });</script><?php } } ?> 
ジャバスクリプトにデータを格納することが実証されている次のファイルに

は、データベースからデータをフェッチするコードです。
このファイルをapiとしましょう。

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname  = "horaires"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$sql = "SELECT id, jourheure, name, depart, arrivee FROM 2_mardi"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 

    //storing result into an array 
    $array = mysql_fetch_row($result); 
} 
$conn->close(); 

//encoding the array into JSON 
echo json_encode($array); 
?> 
+0

こんにちは、あなたの答えに非常に感謝します。しかし、私はこの結果を得たいです: ** {'id': '1'、 'name': 'マルディ5H'、 '終わり':新しい日付( '2017-01-31 05:00:00') 、}、** **の代わりに ** ["1"、 "2017-01-31 18:00:00"、 "Mardi 5H Test"、 ""、 "] ** のコードを使用してください。そしてこれで私は最初の行だけを取り出します – Viktor