2012-04-17 54 views
0

我想要做的就是當從下拉菜單中選擇一個項目時更改圖像。這是表格的一部分,所以我不能改變價值。但是,選項值是行ID,該行還將包含圖像的目標。但是因爲目標'文件'在循環之外被調用,所以它不會被觸發。通過php下拉菜單更改圖像

我讀過,我必須先在循環內調用它,但不能讓它工作。你能看看下面的代碼,並給我一個提示嗎?

感謝

<?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

您必須將表單提交給服務器,以便select中的值在php中可用(它是服務器端語言)。或使用JS \ AJAX – 2012-04-17 04:27:02

+0

你需要一些JavaScript來做到這一點。 – hjpotter92 2012-04-17 04:28:36

+0

@Dagon我不認爲他需要它在一個表格內,他只是想根據選擇動態圖片顯示。 – hjpotter92 2012-04-17 04:29:39

回答

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" /> 
+0

Right on,thanks MiniduM – 2012-04-17 04:43:22

2

試試這個,我認爲這是你正在尋找

什麼?如果你想要做這樣的事情,你必須使用Ajax。在這裏你可以找到幫助你理解Ajax的鏈接。

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

注:

如果你希望它是沒有JavaScript只有PHP,你將不得不犧牲了「不能刷新」約束,作爲提交表單的唯一途徑是按按鈕並提交內容。

+0

好的,謝謝你的信息,我以爲我必須用AJAX來做這件事,只是希望沒有它就能逃脫。 – 2012-04-17 04:35:29

+0

這就是我在筆記中提到的。如果你不想使用Ajax,那麼你應該通過提交表單來重新加載頁面。而不是$ row ['file']將$ _POST ['gallery_id']和$ row ['id']放置爲$ row ['file'] – 2012-04-17 04:37:36

0

這裏是我更新基於從選擇ID的圖像的src時,您可能希望根據該ID與特定的SRC來改變它實現java的紙片和PHP一個簡單的例子

<?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>