Jquery获得多个变量

时间:2016-01-10 18:48:06

标签: javascript php jquery

我有一个小脚本,在后台运行一个php文件,每隔3秒获取一个变量并将其放入div中

带有div

的文档中的

脚本

<script>
        $(document).ready(function() {
            setInterval(function () {
                $('#statmoney').load('safe.php');
            }, 3000);
        });
    </script>

PHP文件(safe.php)

$sql = "SELECT * FROM users WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_object($query);
$money = htmlspecialchars($row->money);

echo $money;

如果我需要添加另一个变量,我需要制作一个新文档是否有一个简单的方法可以解决它?

更新

menu.php

<script>
     $(document).ready(function() {
         setInterval(function () {

             var fields = ['money', 'ore', 'energy']; // array of needed fields

             $.ajax({        
                type: "POST",
                url: "menusafe.php",
                data: {'fields': fields},
                dataType: 'json',

                success: function(response) {

                   // assuming that we already have divs for respective fields
                   fields.forEach(function(v){

                       console.log(response)
                      $("#" + v).html(response[v]);
                   });        
                }
             });
         }, 3000);
     });
 </script>

<div class="menustats"><img src="graphics/logos/moneylogo.png" class="menustatimage"><div class="menustattext" id='money'></div></div>
<div class="menustats"><img src="graphics/logos/energylogo.png" class="menustatimage"><div class="menustattext" id="energy"></div></div>
<div class="menustats"><img src="graphics/logos/orelogo.png" class="menustatimage"><div class="menustattext" id='ore'></div></div>

PHP(menusafe.php)

<?php
if ( isset($_POST['fields']) && !empty($_POST['fields']) && is_array($_POST['fields']) ){
    $fields = $_POST['fields'];
    $fields = (count($fields) > 1)? implode(',', $fields) : $fields;
    $sql = "SELECT $fields FROM users WHERE id='".$_SESSION['user_id']."'";
    $query = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_object($query);
    $result = [];
    foreach($fields as $field){
        $result[$field] = $row->{$field};
    }
    echo json_encode($result);

}
?>

1 个答案:

答案 0 :(得分:0)

让我们假设我们要从users表中检索三个字段:firstnameagemoney。在这种情况下,最好使用$.post$.ajax方法:
js part:

<script>
     $(document).ready(function() {
         setInterval(function () {
             var fields = ['firstname', 'age', 'money']; // array of needed fields
             $.ajax({        
                type: "POST",
                url: "safe.php",
                data: {'fields': fields},
                dataType: 'json',
                success: function(response) {
                   // assuming that we already have divs for respective fields
                   fields.forEach(function(v){
                      $("#" + v).html(response[v]);
                   });        
                }
             });
         }, 3000);
     });
 </script>

php部分:(safe.php)

if ( isset($_POST['fields']) && !empty($_POST['fields']) && is_array($_POST['fields']) ){
    $fields = $_POST['fields'];
    $fields = (count($fields) > 1)? implode(',', $fields) : $fields;
    $sql = "SELECT $fields FROM users WHERE id='".$_SESSION['user_id']."'";
    $query = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_object($query);
    $result = [];
    foreach($fields as $field){
        $result[$field] = $row->{$field};
    }
    echo json_encode($result);

}