使用 sql 数据填充自动完成 jquery vars
Posted
技术标签:
【中文标题】使用 sql 数据填充自动完成 jquery vars【英文标题】:Populate the autocomplete jquery vars with sql data 【发布时间】:2021-03-16 18:13:27 【问题描述】:对不起,我是菜鸟。
有一种方法可以使用从我的 sql 表中调用的变量填充我的 .autocomplete 下拉列表?
如果我使用var = ['var1','var2'..
它可以工作。但我需要从我的 sql 表中回调这些变量。
谢谢!
$( "#product_codes" ).autocomplete(
source: productvar,
minLength: 0,
).focus(function()
$(this).autocomplete("search", "");
);
【问题讨论】:
你用php
标记了这个,你有一个获取数据的php脚本吗?
【参考方案1】:
感谢您的回答! 我正在开发一个由前同事制作的现有网站。
有一个 php 页面可以从数据库中获取数据
我会解释我想要什么:
我有一个带有 .autocomplete jquery 的输入文本,但我想在下拉列表中使用数据库表获取的数据来更改它:
<li class="field-container"><label for="pr_code">
<span class="field-name"><?php echo $LANG['product_code']; ?></span>
<input type="text" value="" id="pr_code" name="pr_code" class="uiStyle text ui-widget-content ui-corner-all" onFocus="showHideTip(this);"> *</label>
<div id="pr_codeTip" class="hidden formTip">
<?php echo $LANG['purchase_pr_code_tip']; ?> </div>
</li>
如何使用获取的数据更改下拉列表中的输入文本?
这里是为 .autocomplete 获取数据的 pr.php 代码
<?php require_once("st_inc/session.php"); ?>
<?php confirm_logged_in(); ?>
<?php require_once("st_inc/connection.php"); ?>
<?php require_once("st_inc/functions.php"); ?>
<?php
if(!isset($_GET["term"])) redirect_to("home.php");
$q = strtolower($_GET["term"]);
if (!$q) return;
$query = "SELECT * FROM products";
$results = mysql_query($query, $connection);
confirm_query($results);
$items = array();
while($row = mysql_fetch_array($results))
$items[$row['pr_code']] = $row['pr_name'];
/*
$items = array();
while($row = mysql_fetch_array($results))
$items[] = $row['pr_name'];
echo json_encode($items);
*/
function array_to_json( $array )
if( !is_array( $array ) )
return false;
$associative = count( array_diff( array_keys($array), array_keys( array_keys( $array )) ));
if( $associative )
$construct = array();
foreach( $array as $key => $value )
// We first copy each key/value pair into a staging array,
// formatting each key and value properly as we go.
// Format the key:
if( is_numeric($key) )
$key = "key_$key";
$key = "\"".addslashes($key)."\"";
// Format the value:
if( is_array( $value ))
$value = array_to_json( $value );
else if( !is_numeric( $value ) || is_string( $value ) )
$value = "\"".addslashes($value)."\"";
// Add to staging array:
$construct[] = "$key: $value";
// Then we collapse the staging array into the JSON form:
$result = " " . implode( ", ", $construct ) . " ";
else // If the array is a vector (not associative):
$construct = array();
foreach( $array as $value )
// Format the value:
if( is_array( $value ))
$value = array_to_json( $value );
else if( !is_numeric( $value ) || is_string( $value ) )
$value = "'".addslashes($value)."'";
// Add to staging array:
$construct[] = $value;
// Then we collapse the staging array into the JSON form:
$result = "[ " . implode( ", ", $construct ) . " ]";
return $result;
$result = array();
foreach ($items as $key=>$value)
if (strpos(strtolower($key), $q) !== false)
array_push($result, array("id"=>$value, "label"=>$key, "value" => strip_tags($key)));
if (count($result) > 11)
break;
echo array_to_json($result);
?>
非常感谢
【讨论】:
【参考方案2】:好的,我用这个解决了:
<li class="field-container"><label for="pr_code">
<span class="field-name"><?php echo $LANG['product_code']; ?></span>
<select name="pr_code" id="pr_code" class="uiStyle text ui-widget-content">
<?php
$con=mysqli_connect("localhost","***","","***");
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
$sql="SELECT * FROM products";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result))
echo '<option value='.$row['pr_code'].'>'.$row['pr_code'].'</option>';
?>;
</select>
谢谢!
【讨论】:
以上是关于使用 sql 数据填充自动完成 jquery vars的主要内容,如果未能解决你的问题,请参考以下文章