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



大家好,

我有一个代码,可以从数据库中读取用户并将其放入下拉菜单中:

<?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 匹配,如果有,则显示"头像"中的图片。

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

查询

可以是:

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

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

然后,您有元素"头像",它可以是 NULL 或值。

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

或:)祝你好运

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

<?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 路径等。

最新更新