我创建了一个自动建议,以便在输入 html 字段时显示数据库表的结果,我想使用 javascript 从自动建议中的值所在的同一行中发布另一个值。
https://i.stack.imgur.com/gIhqK.png
这两个建议都有自己的数字,它们不是重复的,而是我需要帮助的地方,我希望这些建议中的任何一行中的数字发布在下面的数字字段中。
这是 html 表单
<div class="floatingBox">
<div class="container-fluid">
<form class="contentForm" form method="POST" form action="index.php">
<div class="control-group">
<label class="control-label">Name:*</label>
<div class="controls">
<input type="text" name="name" class="span4 autosuggest">
<div class="control-group" >
<div class="dropdown">
<ul class="result"></ul></div>
<label class="control-label">Number:*</label>
<div class="controls">
<input type="text" class="span4 number" name="number" placeholder="ex: ######">
</div>
这是Javascript
$(document).ready(function() {
$('.span4.autosuggest').keyup(function() {
var search_term = $(this).attr('value');
$.post('ajax/search.php', {search_term:search_term}, function(data){
$('.result').html(data);
$('.result li') .click(function() {
var result_value = $(this).text();
$('.span4.autosuggest').attr('value', result_value);
$('.result').html('');
});
});
});
});
这是从数据库表中提取信息的 PHP
<?
include '../connect.php';
if(isset($_POST['search_term']) == true && empty($_POST['search_term']) == false) {
$search_term = mysql_real_escape_string($_POST['search_term']);
$query = mysql_query("SELECT * FROM *table* WHERE id = '$userid' AND name LIKE '$search_term%' ");
while(($row = mysql_fetch_assoc($query)) !== false){
echo '<li>', $row['client_name'], '</li>';
}
}
?>
使用 PHP 发出 JSON 而不是 HTML。然后用 Javscript 填充字段。
PHP(假设包含数字的行称为"client_number")
<?
include '../connect.php';
if(isset($_POST['search_term']) == true && empty($_POST['search_term']) == false) {
$search_term = mysql_real_escape_string($_POST['search_term']);
$query = mysql_query("SELECT * FROM *table* WHERE id = '$userid' AND name LIKE '$search_term%' ");
$results = array();
while(($row = mysql_fetch_assoc($query)) !== false) {
$results[] = array('client_name' => $row['client_name'], 'client_number' => $row['client_number']);
}
header("Content-Type: application/json");
echo json_encode($results);
}
?>
爪哇语
$(document).ready(function() {
$('.span4.autosuggest').keyup(function() {
var search_term = $(this).attr('value');
$.post('ajax/search.php', {search_term:search_term}, function(data){
for(var k in data) {
$('.result').append("<li data-number='"+data[k].client_number+"'>"+data[k].client_name+"</li>");
}
$('.result li') .click(function() {
$('.span4.autosuggest').val($(this).text());
$('.span4.number').val($(this).data("number"));
$('.result').html('');
});
});
});
});