希望有人能帮助我做些事情。我有一个允许jQuery自动完成的代码。我想做的是使用MySQL表中使用ID(主键),然后使用它将其发布到另一个屏幕上。
如何将ID从jQuery代码中获取隐藏值?
这是我的片段。
jQuery
<script>
$(function() {
$( "#skills" ).autocomplete({
source: 'JQUERYTEST.php'
});
});
</script>
html
<div class="ui-widget">
<label for="shop">Shopname: </label>
<input id="shop">
</div>
php/mysql
<?php
//database configuration
$dbHost = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'aurora';
//connect with the database
$db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName);
//get search term
$searchTerm = $_GET['term'];
//get matched data from skills table
$query = $db->query("SELECT * FROM shops WHERE shopname LIKE '%".$searchTerm."%'");
while ($row = $query->fetch_assoc()) {
$data[] = $row['shopname'] . ' - '. $row['streetaddress'] . ' - ' . $row['postcode'];
}
//return json data
echo json_encode($data);
?>
谢谢!
首先,您必须使用Ajax调用来从服务器获取数据。因此,更改您的自动完成功能,并添加AJAX调用以接收响应。然后,您将不得不在jQuery中循环json阵列。我已经使用shopname
,streetaddress
和postcode
创建了整个字符串。当前,您的代码不会从数据库中插入ID
参数。您可以根据自己的需求创建ID。然后动态地创建了HTML,然后将其放在<div class="ui-widget">
<script>
$( function() {
$( "#skills" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "search.php",
dataType: "jsonp",
data: {
term: request.term
},
success: function( data ) {
var html = "";
$.each(data, function(i, item) {
var arr = item.split('-');
html += "<label for='shop'>Shopname:"+arr[0]+" </label><input id='"+item+"' type='hidden'><br>";
});
$('.ui-widget').html(html);
}
});
}
});
});
</script>
尝试一下。我希望这对您有帮助。