#php #mysql #json #mysqli
#php #mysql #json #mysqli
Вопрос:
Первое поле автоматически заполняется по мере ввода пользователем и выбора одного из вариантов. Значение поступает из базы данных с 3 атрибутами: id
, name
и value
. Я хотел бы, чтобы value
выбранное имя из первого текстового поля автоматически отображалось во втором поле. Как мне перенести value
из name
после того, как name
будет выбрано пользователем?
index.php:
<script type="text/javascript">
$(document).ready(function()
{
$('#auto').autocomplete(
{
source: "search.php?json",
minLength: 3
});
});
</script>
</head>
<body>
<p>Type the name of a band: <input type="text" id="auto" /></p>
</body>
</html>
search php file
<?php
$mysqli = taken off;
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT name, salary FROM tag WHERE name LIKE '%$text%' ORDER BY
name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;
?>
Ответ №1:
Попробуйте добавить триггер в автозаполнение, выполнив что-то вроде этого
$( '#auto' ).autocomplete({
select: function( event, ui ) {
var myValue = $(this).val();
//Do what you want with your value
}
});
Ответ №2:
это сработало.
<script type="text/javascript">
$(document).ready(function()
{
$('#auto').autocomplete(
{
source: "search.php?json",
minLength: 3,
close: function( event, ui ) { getSalary(document.getElementById('auto').value) },
change: function( event, ui ) { getSalary(document.getElementById('auto').value) },
select: function( event, ui ) { getSalary(document.getElementById('auto').value) }
});
});
function getSalary(name_salary){
$.post( "salary.php", { term: name_salary }, function(data) {
var test = JSON.parse(data);
document.getElementById('autosalary').value = test.value;
$( "#mincome" ).text(test.value);
});
}
</script>