通过php下拉更改图像

时间:2012-04-17 04:22:36

标签: php image drop-down-menu

我要做的是从下拉列表中选择项目时更改图像。这是表单的一部分,所以我不能改变价值。但是,选项值是行id,该行还包含图像的目标。但是因为目标'文件'在循环外被调用,所以它不会被触发。

我读过我必须首先在循环内调用它但不能让它工作。你能看一下下面的代码并给我一个提示吗?

由于

    <?php

include ("conned-db.php");

$result = mysql_query("SELECT * FROM gallery") 
or die(mysql_error());  

echo "<select id='gallery_id' name='gallery_id' style='width:200px;' >";


while($row = mysql_fetch_array( $result ))
{
echo '<option value=' . $row['id'] . '>';
echo $row['gallery_name'];
echo '</option/>';
}
echo "</select>";
echo "</td>";
echo "<td colspan='2' rowspan='2'>";
echo '<img src=' .$row['file']. '/></td>';

    ?>

3 个答案:

答案 0 :(得分:2)

试试这个,我认为这就是你要找的东西

如果你想做这样的事情,你必须使用Ajax。在这里,您可以找到帮助您了解Ajax的链接。

http://www.w3schools.com/php/php_ajax_database.asp

注意:

如果您希望它只是没有Javascript的PHP,那么您必须牺牲“不得刷新”。约束,因为提交表单的唯一方法是按下按钮,然后提交内容。

答案 1 :(得分:1)

这也应该有用。如果在使用ajax加载页面时图像的文件位置可用,则不是必须的。如果需要再次查询服务器以检索所需的文件位置,则必须使用ajax。以下代码假定您在加载页面时具有下拉列表中每个项目的图像位置。

<select id='gallery_id' name='gallery_id' style='width:200px;' 
  onchange='document.getElementById("image").src=this.options[this.selectedIndex].title' >
 <?php
 while($row = mysql_fetch_array( $result ))
 {
  ?>
   <option value='<?php echo $row["id"]; ?>' title='<?php echo $row["file"]; ?>'> 
        <?php echo $row["gallery_name"]; ?>
   </option>
  <?php
  }
  ?>
<img id="image" />

答案 2 :(得分:0)

这是一个实现java scrip和php的简短示例,其中我根据您可能希望根据该ID更改特定src的select更新图像的src

<?php

    include ("conned-db.php");
    $item = $_GET["imageid"];
    if ($item == "")
    {
        $item = 1;
    }

    $result = mysql_query("SELECT * FROM gallery") 
    or die(mysql_error());  
   ?>
    <select id='gallery_id' name='gallery_id' onChange="window.location='file.php?imageid='+this.value" style='width:200px;' >
    <?

    while($row = mysql_fetch_array( $result ))
    {
    echo '<option value=' . $row['id'] . '>';
    echo $row['gallery_name'];
    echo '</option/>';
    }
  ?>
    </select>
    </td>
<?
    echo "<td colspan='2' rowspan='2'>";
?>
    <img src=' <?=$item?> '/></td>