我要做的是从下拉列表中选择项目时更改图像。这是表单的一部分,所以我不能改变价值。但是,选项值是行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>';
?>
答案 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>