2012-04-17 3 views
0

То, что я пытаюсь сделать, это изменить изображение, когда элемент выбран из раскрывающегося списка. Это часть формы, поэтому я не могу изменить значение. Однако значением параметра является идентификатор строки, эта строка также будет содержать цель для изображения. Но поскольку целевой «файл» вызывается вне цикла, он не срабатывает.изменить изображение через php dropdown

Я читал, что должен сначала называть его в цикле, но не могу заставить его работать. Не могли бы вы взглянуть на приведенный ниже код и бросить мне подсказку?

Благодаря

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

Вы должны отправить форму на сервер, чтобы значение выбора было доступно в php (это серверный язык). или используйте JS \ AJAX –

+0

, для этого вам понадобится javascript. – hjpotter92

+0

@ Dagon Я не думаю, что он нуждается в нем внутри формы, он просто хочет динамического отображения изображения на основе выбора. – hjpotter92

ответ

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

Вперед, спасибо MiniduM –

2

Попробуйте это, я думаю, что это то, что вы ищете

Если вы хотите сделать что-то вроде этого вы должны использовать Ajax. Здесь вы найдете ссылку, которая поможет вам понять об Ajax.

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

Примечание:

Если вы хотите, чтобы это было только PHP без Javascript, вам придется пожертвовать ограничение «не должны обновить», как единственный способ отправить форму является, нажав кнопку и отправку содержимого.

+0

ОК спасибо за информацию, подумал, что мне нужно будет сделать это с AJAX, просто надеясь, что я смогу уйти без нее. –

+0

Вот что я упомянул в примечании. если вы не хотите использовать ajax, тогда вы должны перезагрузить страницу, отправив форму. Вместо $ row ['file'] поместите $ _POST ['gallery_id'] и $ row ['id'] как $ row ['file'] –

0

Вот небольшой пример, который реализует 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> 
Смежные вопросы