Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有选择列表的PHP数组_Php_Html_Css - Fatal编程技术网

带有选择列表的PHP数组

带有选择列表的PHP数组,php,html,css,Php,Html,Css,我试图在国家名称旁边打印国旗,所以如何使用数组循环遍历选项标记 例如: $newarray = array("USA"=>"flag/usa.png", "UK"=>"flag/uk.png"); <select name ="options"> <option value="US">USA</option> <option value="UK">UK</option> <option value="MY">

我试图在国家名称旁边打印国旗,所以如何使用数组循环遍历选项标记

例如:

$newarray = array("USA"=>"flag/usa.png", "UK"=>"flag/uk.png");

<select name ="options"> 
<option value="US">USA</option>
<option value="UK">UK</option>
<option value="MY">Malaysia</option>
</select>
$newarray=array(“USA”=>“flag/USA.png”、“UK”=>“flag/UK.png”);
美国
英国
马来西亚
我可以使用
$newarray['USA']
访问此阵列


但是,每当用户在选项标签中选择国家时,我希望国旗图标打印在国家名称旁边。

这就是您可以实现的方法:

$newarray = array("USA"=>"flag/usa.png", "UK"=>"flag/uk.png");

echo '<select name ="options"> ';
foreach($newarray as $n=> $nv)
{
  echo '<option value='.$n.' style="background-image:url(https://image.shutterstock.com/image-vector/sample-stamp-square-grunge-sign-260nw-1474408826.jpg);">'.$n.'</option>';
}
echo '</select>';
$newarray=array(“USA”=>“flag/USA.png”、“UK”=>“flag/UK.png”);
回声';
foreach($n=>nv的新数组)
{
回音“.$n.”;
}
回声';

只需将url替换为$nv变量

就可以轻松地在该数组中循环并显示图像,但您将无法在
中可靠地显示图像。您可以使用自定义下拉列表,如中的下拉列表


获得设计师对css相关更改的帮助。您可以在更改下拉列表时更改国家图标。这是使用javascript的简单解决方案。对于这种类型的需求,您还可以使用jquery和引导

<?php
$array = array("USA"=>"flag/usa.png", "UK"=>"flag/uk.png");
?>

<div class="myclass">
    <h2>pick an option</h2>
    <select id="dropdown" name="dropdown" onchange="javascript:goTo();">
        <option value="0">Please Select</option>
        <?php foreach ($array as $key=> $value){?>
        <option value="<?php echo $value;?>"><?php echo $key;?></option>

        <?php }?>

    </select>
    <img id ="imgId" src="" />
</div>

<script type="text/javascript">
    function goTo() {
        var location = document.getElementById("dropdown").value;
        document.getElementById("imgId").src=location;
    }
</script>

选择一个选项
请选择

选择国家并获取地图
请选择

这是服务器端逻辑无法做到的。您需要一些额外的客户端逻辑,所以javascript。您可以使用Ajax并从array_Search返回结果这将显示每个选项的标志。不完全是OP要求的,我想为每个选项显示,比如选项标签中有200多个国家,假设用户选择了美国,那么我想要像[flagicon][countryname]这样的东西差不多that@MohammadSameer尝试实现它一次,它会给你相同的输出,或者你只想在选中它时显示图像?一些信息:我在一个单独的页面中有国家下拉菜单,即submit.php,每当用户提交包含姓名、国家、性别等详细信息的表单时,bio它是在index.php上提交的,所以它们在两个单独的页面上,我使用的脚本使用PDO,并使用$user['name']和$user['gender']从MYSQL数据库表中访问名称、性别等详细信息。这是一个解决方案,而不是一个答案,您并没有真正解释如何解决它。对于提问者:在数组上循环,对数组的所有条目重复相同的代码。它输出一个键和一个值
($array as$key=>$value)
,其中$key是“USA”或“UK”,而$value是标志。
<?php
$array = array("USA"=>"flag/usa.png", "UK"=>"flag/uk.png");
?>

<div class="myclass">
    <h2>pick an option</h2>
    <select id="dropdown" name="dropdown" onchange="javascript:goTo();">
        <option value="0">Please Select</option>
        <?php foreach ($array as $key=> $value){?>
        <option value="<?php echo $value;?>"><?php echo $key;?></option>

        <?php }?>

    </select>
    <img id ="imgId" src="" />
</div>

<script type="text/javascript">
    function goTo() {
        var location = document.getElementById("dropdown").value;
        document.getElementById("imgId").src=location;
    }
</script>
<?php 
$country = array("USA"=>"flag/usa.png", "UK"=>"flag/uk.png");
?>
<img id ="CountryMap" src="" />
  <h2>Select Country and GET Map</h2>
    <select id="getMap"  onchange="GetMap();">
        <option value="0">Please Select</option>
        <?php foreach ($country as $key=> $value):?>
        <option value="<?php echo $value;?>"><?php echo $key; ?></option>
        <?php endforeach; ?>
    </select>

<script type="text/javascript">
    function GetMap() 
      {
        var location = document.getElementById("getMap").value;
        document.getElementById("CountryMap").src=location;
      }
</script>