从下拉列表中选择 - >比较 - >如果匹配 - >显示图片

时间:2013-09-11 14:01:43

标签: php javascript mysql

美好的一天,

我有一个代码从数据库中读取用户并将它们放在下拉菜单中:

<?php           
mysql_connect('', '', '');
mysql_select_db ("");

$sql = "SELECT id,name FROM jos_users";
$result = mysql_query($sql);


echo "<select name='deelnemers' onchange='copyId2textinput(this);'>";
while ($row = mysql_fetch_array($result)) {


echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";
?>

现在我有另一个名为jos_comprofiler的数据库,同时还有一个ID和一个头像(图像)。

我想知道是否有人给我一些建议来比较2个表中的ID然后显示图片。

例如,如果我点击下拉菜单中的某个用户,则必须查看是否有ID与其他表匹配,如果有,请显示“avatar”中的图片。

感谢您的帮助,请原谅我的英语不好!

2 个答案:

答案 0 :(得分:1)

查询可以是:

  SELECT `ju`.`id`, `ju`.`name`, `jcp`.`avatar`  FROM `jos_users` as `ju`
  LEFT JOIN `jos_comprofiler` as `jcp` ON (`ju`.`id` = `jcp`.`id`)

这里我们使用左连接,这意味着每个jos_users都不需要存在jos_comprofiler。在这些情况下,字段“avatar”将为NULL。

然后你在行中有'avatar'元素,它可以是NULL或值。

if($row['avatar'] != NULL) echo "<img src=\"".$row['avatar']."\">";
祝你好运

答案 1 :(得分:0)

会有一些方法,但我会快速展示一个。

<?php           
mysql_connect('', '', '');
mysql_select_db ("");

$sql = "SELECT u.id, name, avatar FROM jos_users AS u LEFT JOIN jos_comprofiler USING(id)";
$result = mysql_query($sql);

echo "<div id='imgContainer'></div>";

echo "<select name='deelnemers' onchange='showAvatar(this.value);'>";
$avatars = array();
while ($row = mysql_fetch_array($result)) {
    if($row['avatar']){
        $avatars[$row['id']] = $row['avatar'];
}
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";

?>
<script>
    var avatars = <?=json_encode($avatars)?>;
    //alert(avatars[5]);
    var avatarContainer = document.getElementById('imgContainer');
    function showAvatar(id) {
        if(avatars[id]===undefined) return false;
        avatarContainer.innerHTML = '<img src="/path/'+avatars[id]+'" />';
    }
</script>


这应该可行,对代码进行一些修改:img path等。