2015-09-17 3 views
1

Мне хотелось бы узнать, как получить выбранное имя из выпадающего меню, заполняемого запросом с помощью phpmyadmin, для отображения изображения в соответствии с выбор.PHP - Как получить выбранный элемент из выпадающего меню, заполненного от запроса до POST

Например, если пользователи выбирают «Горы» из выпадающего меню, я хочу иметь возможность использовать это значение и сделать другой запрос, чтобы получить конкретный URL-адрес изображения из базы данных и отобразить его, и каждый раз, когда пользователь изменяется выбор изображения соответственно.

И да, я знаю, команды mysql устарели. Если вам нужна дополнительная информация, дайте мне знать.

<select name='picker'>"; 
<?php 
mysql_connect('localhost','root',''); 
mysql_select_db('...'); 
$sql = "..."; 
$result = mysql_query($sql); 

while ($row = mysql_fetch_array($result)) { 
     echo "<option value='" . $row['name'] . "'>" . $row['name'] ."</option>"; 
     } 

      $selectoption = $_REQUEST['picker']; 
     mysql_connect('localhost','root',''); 
     mysql_select_db('...'); 
     $sql3 = "...";  
     $image = mysql_query($sql3); 
?> 

<img src="<?php echo $image; ?>"> 
+1

Вы можете использовать ajax. –

+0

Эллаборат, пожалуйста, и спасибо. – user3190636

+0

'mysql' не * почти * устарел ** ** устарел, и ваш код перестанет функционировать, когда ваш администратор сервера обновится до PHP 7 – Kuya

ответ

0

Вы можете использовать ajax при выборе события обмена, а затем изменить содержимое изображения.

1

Создать 2 Файлы

  • main.php
  • fetchimage.php

Примечание: Оба файла должны находиться на одном месте, если корневая папка они выглядят как этот

main.php 
fetchimage.php 

если внутри папки предполагается, что имя папки - альфа, то

alpha/main.php 
alpha/fetchimage.php 

Теперь создайте файл main.php и поставьте следующие PHP и jQuery code in it.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors',1); 
mysql_connect('localhost','root',''); 
mysql_select_db('...'); 
?> 
<select name="picker" id="picker"> 
<?php 
    $sql = "SELECT * FROM table"; 
    $result = mysql_query($sql); 
    while ($row = mysql_fetch_array($result)) { 
?> 
    <option value="<?php echo $row['name'];?>"><?php echo $row['name'];?></option> 
<?php } ?> 
</select> 

//Here Show the Images 
<div id="imged"></div> 

JQuery

//JQuery library always comes first. 
<script> 
$(document).ready(function() { 
$("#picker").change(function(){ 
     var name=$(this).val(); 
     alert(name); //This will show an alert when value selected, remove this **alert** in production mode, use it only in development mode. 
     var dataString = 'name='+ name; 
     $.ajax({ 
      type: "POST", 
      url: "fetchimage.php", 
      data: dataString, 
      cache: false, 
      success: function(data){ 
       $("#imged").html(data); 
      } 
     }); 
    }); 
}); 
</script> 

Более подробную информацию о jQuery change function и Ajax Method

  • Bind функция #picker изменения с <select>
  • функция успеха
  • Bind Ajax с id="imged", чтобы отобразить изображение

Теперь создайте второе имя файла fetchimage.php и не вводите в него следующий код.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors',1); 
mysql_connect('localhost','root',''); //Put Database Connection Here 
mysql_select_db('...'); //Put Database Name Here 
    if(isset($_POST['name'])){ 
     $selectoption = mysql_real_escape_string($_POST['name']); 
     $sql = "SELECT Image FROM table WHERE name = '$selectoption'";  
     $result = mysql_query($sql); 
     $row = mysql_fetch_array($result); 
     //This will show the image inside <div id="imged"></div> 
     echo '<img src="'. $row["Image"] .'" alt="" />'; 
    } 
?> 

Side Примечание: имейте в виду, mysql осуждается, следует начать использовать mysqli прямо сейчас.

MySQLi (Процедурный пример)

<?php 
error_reporting(E_ALL); 
ini_set('display_errors',1); 
//Conntection Credentials 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "databasename"; 
// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

//Run Query 
$sql = "SELECT imagename FROM table"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) { 
     echo $row["imagename"]; 
    } 
} else { 
    echo "0 results"; 
} 

mysqli_close($conn); 
?> 

ОП запросил пример кода, и при условии, другие подробности например (базы данных) по электронной почте.

+0

Благодарим вас за решение @Shehary. Я попробую ваш код вечером. Я отправлю обновления по пути. Еще раз спасибо. – user3190636

+0

Прямо сейчас у меня проблемы. Данные, которые я хочу извлечь из БД, - это URL-адрес изображения, содержащегося в той же строке, что и имя. Например, результат запроса должен быть $ result = "http://www.example.com/image.jpg", а затем эта строка отображает его с помощью Нужно ли мне модифицировать код? – user3190636

+0

Вы можете изменить код в соответствии с вашими потребностями и требованием – Shehary

Смежные вопросы