繁体   English   中英

PHP-如何从POST之前的查询填充的下拉菜单中获取所选项目

[英]PHP - How to get the selected item from dropdown menu populated from query before POST

我想知道如何从下拉菜单中获取所选名称,该下拉菜单由使用phpmyadmin的查询填充,以根据选择显示图片。

例如,如果用户从下拉菜单中选择“山脉”,我希望能够使用该值并进行另一个查询以从数据库中获取特定图像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; ?>">

创建2个文件

  • main.php
  • fetchimage.php

注意:两个文件应位于同一位置,如果它们是根文件夹,则应如下所示

main.php
fetchimage.php

如果文件夹内部假设文件夹名称为alpha,则

alpha/main.php
alpha/fetchimage.php

现在创建main.php文件,并将以下PHPjQuery代码放入其中。

<?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更改功能Ajax方法的更多信息

  • <select> #picker更改功能与<select>绑定
  • 将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="" />';
    }
?>

侧面说明:请记住,不建议使用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);
?>

OP请求了示例代码,并通过电子邮件提供了其他详细信息,例如(数据库)。

您可以在select onchange事件上使用ajax,然后更改图像的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM