У меня есть код PHP и Javascript, который я использую для своей функции поиска по типу, и он работает нормально. Но если вы посмотрите на код ниже, я передаю значение поиска, как я могу получить идентификатор и перейти к URL-адресу формы?
HTML
<form method = "get" class = "form-inline customers" autocomplete = "off" action = "/customers/<?php echo id; ?> ">
<input class = "customers" id = "customers" type = "text" name = "customers">
<button type = "submit" title = "Search Customers"></button>
</form>
Javascript
<script>
$( document ).ready(function() {
$('input.customers').typeahead({
source: function (query, process) {
var countrycode = '<?php echo $agencyid; ?>';
return $.get('fetch_customers.php', { query: query, cc: countrycode }, function (data) {
data = $.parseJSON(data);
return process(data);
});
},
});
});
</script>
PHP
$countrycode1 = $_GET['cc'];
$sql = "SELECT
first_name,
last_name,
id,
status,
agency_id
FROM customers
WHERE (agency_id = '$countrycode1') AND first_name LIKE '%".$_GET['query']."%' LIMIT 20";
$resultset = mysqli_query($conn, $sql) or die("database error:".
mysqli_error($conn));
$json = array();
while( $rowscity = mysqli_fetch_assoc($resultset) ) {
$json[] = $rowscity["first_name"];
$json[] = $rowscity["id"];
}
$output = json_encode($json);
echo $output;
mysqli_close($conn);
?>
Да, точно. Мне нужно вернуть client/returnedID. На данный момент возвращается клиент/имя+имя
Вы имеете в виду, что ваш PHP-файл возвращает имя + имя вместо идентификатора?
Да, это так. Файл PHP возвращает имя + имя. Но он должен вернуть идентификатор.
Позвольте мне протестировать ваш код на моем локальном хосте. Ваш код кажется хорошим, проверьте лемме
Большое спасибо за ваше время.
@Абдул Удачи? :)
Подождите, у меня был обеденный перерыв.. Только начинаю.
Эй, нет проблем. :-)
Прежде всего, ваша ошибка в вашем запросе. Ваш запрос вернет вам 20 записей, но вам нужно вернуть только один идентификатор для установки в действии формы.
Также сделайте это while( $rowscity = mysqli_fetch_assoc($resultset)) { $json[]['first_name'] = $rowscity["first_name"]; $json[]['id'] = $rowscity["id"]; }
И нужно ли вносить какие-либо изменения в действие формы?
Нет, вам не нужно делать какие-либо изменения в вашей форме. Позвольте мне изменить ваш php-скрипт и отправить вам ответ
Я думаю, вам не нужно first_name для этой цели, верно?
Вам нужен только идентификатор из php-скрипта, чтобы изменить действие формы, верно?
Я только что попытался изменить сценарий, как вы сказали. Но предполагаю, что это не работает. Дай-ка еще раз проверю.
Сценарий заключается в том, что есть текстовое поле поиска, где пользователи заполняют имя, и оно должно быть автозаполнено через ajax. И когда я отправляю форму, она должна возвращать идентификатор first_name.
да, мне нужно передать только идентификатор с действием формы
Ваш PHP-скрипт:
<?php
$countrycode1 = $_GET['cc'];
$sql = "SELECT
first_name,
last_name,
id,
status,
agency_id
FROM customers
WHERE (agency_id = '" . $countrycode1 . "') AND first_name LIKE '%" . $_GET['query'] . "%' LIMIT 1";
$resultset = mysqli_query($conn, $sql) or die("database error:" . mysqli_error($conn));
$json = array();
while ($rowscity = mysqli_fetch_assoc($resultset)) {
echo $rowscity["id"]; exit;
}
?>
Ваш сценарий может быть таким:
<script>
$(document).ready(function () {
$('input.customers').typeahead({
source: function (query, process) {
var countrycode = '<?php echo $agencyid; ?>';
$.get('fetch_customers.php', {query: query, cc: countrycode}, function (data) {
$('form').attr('action', '/customers/' + data);
});
},
});
});
</script>
Теперь автозаполнение не работает. Но когда я ввожу имя и отправляю форму, она правильно перенаправляется.
Для автозаполнения можно сделать еще один скрипт отдельно
В противном случае вы также можете управлять в этом скрипте, используя переменную, к которой вы можете применить условие if () для фильтрации записи, в основном проблема была с вашим запросом. Теперь вы можете применить свою собственную логику
ооо ок. Немного запутался, дай мне проверить.
В моем случае это не сработало, так как не работает основное автозаполнение. В любом случае получил изрядное количество идеи о том, как подойти. Спасибо
Вы можете просто написать еще один скрипт для автозаполнения... Это было бы очень просто для вас.
Я не очень хорошо разбираюсь в Ajax/Javascript. Я не уверен, если я сделаю еще один скрипт для автозаполнения, то как я буду интегрировать ваш скрипт и мой скрипт. Позвольте мне проверить, иначе нужно найти какой-то другой скрипт для того же самого.
Мне нужна небольшая услуга. В JS я получаю $('#selectuser_id').val(ui.item.value); // сохранить выбранный идентификатор для ввода, а в ответ значение будет сохранено в текстовом поле. <input type='text' id='selectuser_id' />. Есть ли способ выбрать значение текстового поля в php?
Да, вы можете выбрать значение в PHP, используя другой запрос ajax. Просто отправьте запрос ajax и установите это значение в сеансе, после чего вы сможете получить его на той же странице, а также в файле php.
Если вы хотите изучить управление кодом, используя различные условия, или хотите стать экспертом в ajax. Я начал занятия для начинающих, чтобы помочь им стать героем от нуля до PHP и jQuery.
Вы хотите передать идентификатор, который возвращается из php-файла, в ваш запрос $.get? Если да, то хотите ли вы, чтобы этот возвращенный идентификатор был установлен в вашем действии формы, например customer/returnedID ?