【问题标题】:integrate small image with movie name for autocomplete textbox将小图像与电影名称集成以实现自动完成文本框
【发布时间】:2014-12-15 14:43:35
【问题描述】:

我有一个包含一些问题的 PHP 表单。这种形式的问题之一是:“你最喜欢的电影是什么?”为此,我使用了 jQuery 自动完成功能并且效果很好。

我现在想做的是将电影标题与旁边的小图像整合在一起。我存储了一些 IMDb 电影标题,以及我通过抓取获得的海报图片的链接。

我的问题:如何将电影图像整合到自动建议列表中的标题中? 我读了一些类似的问题,如This one,但我的问题是我的图像的 src 不是特定的 url,但是数据库中的每部电影都有一个链接,例如这些是一些电影的一些海报链接:

http://ia.media-imdb.com/images/M/MV5BODU4MjU4NjIwNl5BMl5BanBnXkFtZTgwMDU2MjEyMDE@._V1_SX214_AL_.jpg

http://ia.media-imdb.com/images/M/MV5BMTMxNTMwODM0NF5BMl5BanBnXkFtZTcwODAyMTk2Mw@@._V1_SY317_CR0,0,214,317

http://ia.media-imdb.com/images/M/MV5BMjAxMzY3NjcxNF5BMl5BanBnXkFtZTcwNTI5OTM0Mw@@._V1_SX214_AL_.jpg

这是我的代码:

<fieldset id = "q27"> <legend class="Q27"></legend>
<label class="question"> What are your favorite movies?<span>*</span></label>
<div class="fieldset content"> 
<p>
<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>

<div class="movienames">
<a href="#" id="addScnt4">Add more movies</a>
<div id="m_scents">
<p>
<label style="margin-bottom:10px;" for="m_scnts">
<input class="autofill4" type="text" id="m_scnt" size="20" name="q27[]"
value="" placeholder="Enter text" />
</label>
</p>
</div>
</div>
</p>
</div>
</fieldset>

<script type="text/javascript">
 $(function() {
  var $title = $('#m_scnt');

  //autocomplete
 $title.autocomplete({
   source: "testfilmsauto.php",
   minLength: 3
   focus: function( event, ui ) {
    $title.val( ui.item.label );
   return false;
   },
   select: function( event, ui ) {
    $title.val( ui.item.label );
    return false;
   }
 });

$title.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
  var $li = $('<li>'),
  $img = $('<img>');

  $img.attr({
   src: item.icon,
   alt: item.label
  });

 $li.attr('data-value', item.label);
 $li.append('<a href="#">');
 $li.find('a').append($img).append(item.label);    

  return $li.appendTo(ul);
 };
});

</script>

这是filmsauto.php,我从数据库获取电影:

<?php
if (isset($_GET['term'])){
$return_arr = array();

try {
    $conn=new PDO('mysql:dbname=imdb;host=localhost', 'user', 'pass');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare('SELECT DISTINCT movieName FROM film_Posters WHERE movieName LIKE :term limit 0, 10');
    $stmt->execute(array('term' => '%'.$_GET['term'].'%'));

    while($row = $stmt->fetch()) {
      //    $return_arr[] =  $row['movieName'];
              $obj = new stdClass;
                $obj->value = $row['movieName']; 
                $obj->label = $row['movieName'];
                $obj->icon = $row['posterLink'];
               $return_arr[] = $obj;                    
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

 echo json_encode($return_arr);
}

?>

任何建议都将受到高度赞赏,

【问题讨论】:

    标签: php jquery image movie


    【解决方案1】:

    您已经拥有所需的一切。创建一个与您在演示中找到的具有相同结构的 php 数组怎么样?然后你有你的网址和你的名字。

    只需将该列添加到您的查询中,然后将一个对象推送到您的 $return_arr 中:

    $obj = new stdClass;
    $obj->value = $row['movieName']; 
    $obj->label = $row['movieName'];
    $obj->icon = $row['moviePic'];
    $return_arr[] = $obj;
    

    【讨论】:

    • 是的,你是对的,但我的问题是我不知道如何在我的数据库中使用图像链接创建这个数组.. :|
    • 更新了我的答案,因为我无法在 cmets 中对其进行格式化;)
    • 感谢您的帮助 :),我现在将尝试您的答案,并会通知您结果.. 还有一个问题:我想我必须在我的 php fie (filmsauto. php),如何在 javascript 文件中使用 $return_arr[]? (因为在我的问题中提到的示例演示中,数组是在 javascript 文件中定义的......:|
    • 我已经更新了我的问题..现在你可以看到我做了什么..我确定这不是正确的方法:(
    • 看看你的filmsauto.php的输出。它显示一个 json 字符串。 JSON 是 javascript 标准对象表示法的首字母缩写词,表示这是一个 javascript 对象。 (您可以在json.parser.online.fr 上查看它的可读性)。现在,您的 js 源代码中只有一个小错字,导致 javascript 崩溃:在 minLength: 3 之后缺少逗号。您可以使用诸如 firebug 或 sth 之类的 Web 开发控制台查看解析器输出。对我来说,这现在有效。
    猜你喜欢
    • 2014-08-05
    • 2014-12-15
    • 1970-01-01
    • 2014-11-24
    • 2012-09-20
    • 1970-01-01
    • 2016-08-28
    • 2017-09-18
    • 2011-04-18
    相关资源
    最近更新 更多