Web ページのjQWidgets リストボックスコントロールに (ページの読み込みとレンダリングが完了したときに) 実際の MySQL データベース テーブルの値を入力したいと考えています。
部分的な解決策: ここ
新しい問題: ソース コードを更新しましたが、SQL 文字列をハードコーディングすると、リスト ボックスに値が入力されます。しかし、ページ上の MySQL データベースの値を使用して jQWidgets リストボックスを生成するときに呼び出すことができる小さな JS 関数 - popList(field, table) - を作成したいと考えています。
問題は、PHP スクリプトの実行時に何らかの理由で$field
とが空になり、エラーが発生することです。何を与える?$table
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM' at line 1
ページ:
<div id="ListBox">
<script type="text/javascript">
popList("name", "categories");
</script>
</div>
popList(フィールド,値) :
function popList(field, table) {
$.ajax({
type: "GET",
url: 'getListOfValues.php',
data: 'field='+escape(field)+'&table='+escape(table),
dataType: 'json',
success: function(response) {
var source = $.parseJSON(response);
$("#ListBox").jqxListBox({ source: source, checkboxes: true, width: '400px', height: '150px', theme: 'summer'});
},
error: function() {
alert('sources unavailable');
}
});
}
getListOfValues.php :
<?php
require "dbinfo.php";
// Opens a connection to a MySQL server
$connection=mysql_connect($host, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
$field = $_GET["field"];
$table = $_GET["table"];
$field = mysql_real_escape_string($field);
$table = mysql_real_escape_string($table);
$qryString = "SELECT " . $field . " FROM " . $table;
$qryResult = mysql_query($qryString) or die(mysql_error());
$source = array();
while ($row = mysql_fetch_array($qryResult)){
array_push($source, $row[$field]);
}
mysql_close($connection);
echo json_encode($source);
?>