динамический выпадающий ничего не показывает

Я пытаюсь разрешить пользователю выбирать фильмы по названию или по актерам (например, если он забыл название фильма, но вспомнил актера / актрису в этом фильме, он сможет найти фильм, введя имя актера). Я использовал jQuery auto-comlete для получения названий фильмов или актеров.

Ниже я попробовал. Автозаполнение частей работает нормально (то есть, когда пользователь выбирает moviebyTitle и начинает писать заголовок, предложение автозаполнения работает, также для имен актеров.

Проблема:

Когда пользователь пишет имя актера, автозаполнение работает нормально, также появится динамическое выпадающее меню, но проблема в том, что это раскрывающийся список ничего не отображает : | Может ли кто-нибудь любезно помочь мне найти, в чем проблема с этим кодом? Спасибо,

<select id="selectType" name="source">
<option value="">MoviesBy</option>
<option value="byTitle">byTitle</option>
<option value="byActor">byActor</option>
</select>

<input type="textbox" name= "tag" id="tags">

<select id="movieImdbId" name="movieImdbId[]" multiple="multiple" width="200px" size="10px" style="display: none;">
</select>

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>

<script type="text/javascript">
$(document).ready(function () {
//Create widget with default data source
$("#tags").autocomplete({
source: "actorsauto.php",
minLength: 2
});

$("#selectType").change(function () {
// Assign new data source like that :

if ($(this).val() == "byTitle")
$("#tags").autocomplete("option", "source", "filmsauto.php");
else
if ($(this).val() == "byActor"){

$("#tags").autocomplete({
source: "actorsauto.php",
minLength: 2,
select: function (event, ui){
var selectedVal = $(this).val(); //this will be your selected value from autocom plete
// Here goes the ajax call.

$('#movieImdbId').show();
$.post("actions.php", {q: selectedVal, q2: $("#selectType").val()}, function (response){
// response variable above will contain the option tags. Simply put in the dropdown.

$("#movieImdbId").html(response);
});
}
});
}
});
});

</script>

и вот actions.php:

<?php

if(isset($_GET['q']) && !empty($_GET['q']) && isset($_GET['q2']) && !empty($_GET['q2']) ){

$q = $_GET['q'];
$q2 = $_GET['q2'];

include('imdbConnection.php');
$sql = $conn->prepare("SELECT DISTINCT movieImdbId FROM movie_roleNames WHERE castName = :q");
$sql->execute(array(':q' => $q));

// Initialize a variable that you will send back to your ajax call, its still waiting for this script to be completed.
$html = "";

$results = $sql->fetchAll(PDO::FETCH_OBJ);

while($results as $row){

$option = '<option value="' . $row['movieImdbId'] . '">' . $row['movieImdbId'] . '</option>';

$html .= $option;
}
echo $html;
exit;
}

?>

ОБНОВИТЬ:

Вот что я вижу:

введите описание изображения здесь

0

Решение

Вы смешиваете mysql а также PDO так что попробуй использовать PDO вместо mysql,
Вы также должны добавить ценность в $html переменная вместо перезаписи значения снова и снова.
изменить нижнюю часть кода, как это, потому что вы

$results = $sql->fetchAll(PDO::FETCH_OBJ);
while($results as $row){

$option = '<option value="' . $row->movieImdbId . '">' . $row->movieImdbId . '</option>';

$html.= $option;
}
echo $html;
exit;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]