簡體   English   中英

如何獲取PHP數據庫值到JavaScript數組

[英]How to get php database values to javascript array

您好,我在使用jquery自動完成插件。 我有一些php檢索的數據庫值,我想在自動完成插件中使用這些值。 為此,我想將php值獲取到javascript數組。 我怎樣才能做到這一點?

$(function() {
    var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
    ];
    $( "#category" ).autocomplete({
      source: availableTags
    });
  });

PHP的:

<?php
require_once "config.php";
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select distinct(category) from completer";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
    $fname = $rs['category'];
    echo "$fname"
}
?>

好吧,如果您在php變量中有數據存儲,那么您可以像這樣將這些值添加到javascript變量中, 而無需使用ajax的東西:

假設您在php變量中具有以下值:

$myPhpVar = [
  "ActionScript",
  "AppleScript",
  "Asp",
  "BASIC",
  "C",
  "C++",
  "Clojure",
  "COBOL",
  "ColdFusion",
  "Erlang",
  "Fortran",
];

然后在您的js部分應該是:

$(function() {
  var availableTags = [];

  // start here - populate the data from php variable
  <?php foreach($myPhpVar as $key => $val) {?>
    availableTags.push('<?php echo $val;?>'); // push data into js variable
  <?php }?>
  // end here

  $( "#category" ).autocomplete({
    source: availableTags
  });
});

JS腳本:

$(function() {
    $.ajax({
        type : 'get',
        url : 'urlofmyfile.php',
        data : 'q='+q,
        dataType : 'json',
        success : function(availableTags){
            $( "#category" ).autocomplete({
              source: availableTags
            });
        }
    });

  });

$ .ajax文檔: http : //api.jquery.com/jquery.ajax/

PHP腳本:

  <?php
require_once "config.php";
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select distinct(category) from completer";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
    $fname[] = $rs['category'];
}
print json_encode($fname);
exit;
?>

json_encode文檔: http : //php.net/manual/zh/function.json-encode.php

有幾種方法可以實現此目的。

動態頁面生成。

您可以動態地從數據庫獲取值,並將其作為JSON對象插入HTML:

$(function() {
    var availableTags = <?php
        require_once "config.php";
        $q = strtolower($_GET["q"]);
        if (!$q) die("[]");
        $sql = "select distinct(category) from completer";
        $rsd = mysql_query($sql);
        $row = array();
        while($rs = mysql_fetch_assoc($rsd)) {
            $row[] = $rs['category'];
        }
        echo json_encode($row);
    ?>;
    $("#category").autocomplete({
        source: availableTags
    });
});

AJAX。

AJAX方法幾乎相同,但被認為是更好的做法。 在這種情況下,PHP文件是一個單獨的文件,僅返回由JS處理的對象。

PHP:

<?php
    require_once "config.php";
    $q = strtolower($_GET["q"]);
    if (!$q) die("[]");
    $sql = "select distinct(category) from completer";
    $rsd = mysql_query($sql);
    $row = array();
    while($rs = mysql_fetch_assoc($rsd)) {
        $row[] = $rs['category'];
    }
    echo json_encode($row);
?>

JS:

$(function() {
    $.ajax({
        url: 'yourPhp.php',
        data: 'q=' + q,
        dataType: 'json'
    }).done(function(dt) {     
        $("#category").autocomplete({
            source: dt
        });
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM