Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты

Как сделать чтобы сработало?

Мастер (1280), закрыт 1 месяц назад
Суть проста, пользователь вводит Имя или другой фрагмент ФИО в input, нажав на клавиатуре Enter, в select должна происходить сортировка, либо вывести без WHERE(в sql запросе).
php:
<input type="text" placeholder="Ф. И. О." class="Or-fio" />
<select size="24" multiple>
<?php
echo '<script type="text/javascript">',
'keyPressed();',
'</script>';
include('fio.php');
?>
</select>

Здесь идёт проверка, что был нажат Enter, пока input находится в фокусе.
js:
function keyPressed() {
$('input[type=text]').on('keypress', function(e) {
if (e.which == 13) {
alert('enter key is pressed');
e.preventDefault();
}
});
}
$('.Or-fio').on('change', function() {
var fio = $('.Or-fio').val();
$.post("fio.php", "fio-str=" + fio, function (fiotxt) {
$('.Or-fio').val('');
$('.Or-fio').val(fiotxt);
});
});
Здесь можно наблюдать, что я вернул через ajax запрос тоже, что и отправил (предварительно очистил input). Пусть так и будет, оно нужно, но идея не в этом.

Файл "fio.php":
<?php
if(isset($_POST["fio-str"])){
$fiostr = $_POST['fio-str'];
echo $fiostr;
}
$sql = ("SELECT FIO FROM [MyBD] WHERE Fam = '$fiostr' OR Imy = '$fiostr' OR Otch = '$fiostr' ORDER BY Fam");
$stmt = sqlsrv_query($conn, $sql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$Ffio = $row['FIO'];
echo '<option value="'.$Ffio.'">'.$Ffio.'</option>';
}
?>
Здесь я пытаюсь передать $fiostr в sql запрос, прогнав через который, на выходе я должен увидеть результат в многострочном select. Но так как, $fiostr остаётся в ajax запросе и не покидает его, ничего не происходит.

Вроде как здесь нужен JSON, но я понятия не имею каким, он здесь боком и как его сюда прикрутить.

Вообщем как реализовать сие чудо?
Лучший ответ
Комментарий удален
aSpectro Мыслитель (7185) Когда ты получил данные из бд, то можешь сформировать массив с нужными полями, либо сразу все поля засунуть в json_encode($твой_массив, JSON_UNESCAPED_UNICODE) // JSON_UNESCAPED_UNICODE для кириллицы, и вернуть через echo, а в js уже работать с полученным json'ом
Остальные ответы
Похожие вопросы
Также спрашивают