Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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 - Fatal编程技术网

如果条件多-更好的方式-PHP

如果条件多-更好的方式-PHP,php,Php,我有一个国家下拉列表,取决于数据库值,我想显示一个选定的国家 下面的代码可以工作 <?php if ($associate_details["country"]=="AU"){ echo "selected";} ?> 我的问题是,有没有更好的方式来显示选择的国家,而不写那么多的if条件 <select style="margin-left:1.5em;" name="associate_country"> <option value="US" >Uni

我有一个国家下拉列表,取决于数据库值,我想显示一个选定的国家

下面的代码可以工作

<?php if ($associate_details["country"]=="AU"){ echo "selected";} ?>

我的问题是,有没有更好的方式来显示选择的国家,而不写那么多的if条件

<select style="margin-left:1.5em;" name="associate_country">
<option value="US" >United States of America</option>
<option value="AR">Argentina</option>
<option value="AA">Armenia</option>
<option value="AW">Aruba</option>
<option value="AU" <?php if ($associate_details["country"]=="AU"){ echo "selected";} ?>>Australia</option>

美利坚合众国
阿根廷
亚美尼亚
阿鲁巴

您可以使用一些javascript/jquery在事件发生后进行设置

 var country = '<?php echo $associate_details["country"];?>';
 $("select[name='associate_country']").val(country);
var国家=”;
$(“选择[name='associate_country']”)val(国家);

但是如果你的国家存储在一个数组中,那么你可以这样做

  $countries = [["name"=>"australia","code"=>"AU"], etc etc];

  echo "<select style='margin-left:1.5em;' name='associate_country'>";
  foreach($countries as $value){
   echo "<option value='".$value['code']."' ";
   if ($associate_details["country"]==$value['code']) { echo "selected" ;};
   echo ">".$value['name']."</option>";
  }
$countries=[[“name”=>“australia”、“code”=>“AU”等];
回声“;
foreach(按美元价值计算的国家){
回显“$value['name']”;
}

您可以使用一些javascript/jquery在事后进行设置

 var country = '<?php echo $associate_details["country"];?>';
 $("select[name='associate_country']").val(country);
var国家=”;
$(“选择[name='associate_country']”)val(国家);

但是如果你的国家存储在一个数组中,那么你可以这样做

  $countries = [["name"=>"australia","code"=>"AU"], etc etc];

  echo "<select style='margin-left:1.5em;' name='associate_country'>";
  foreach($countries as $value){
   echo "<option value='".$value['code']."' ";
   if ($associate_details["country"]==$value['code']) { echo "selected" ;};
   echo ">".$value['name']."</option>";
  }
$countries=[[“name”=>“australia”、“code”=>“AU”等];
回声“;
foreach(按美元价值计算的国家){
回显“$value['name']”;
}

除非您将国家/地区存储在数组中-否。您的选项的所有值都是硬编码的吗?您是否在数据库或数组中的任何位置定义了它们?“这么多条件”?我只看到一个。。。将所有国家/地区放置在一个数组中,并迭代所有条目。这样,您总共只需要实现一个条件。@dukedevil294 hardcoded是的,就像第一位评论者所写的,除了您已经开始的内容(假设您在PHP中需要这个),没有其他方法可以设置任何内容,因为您只有硬编码的值来比较您的数据库值。如果您将其更改为从数据库中提取国家/地区缩写,则可以循环所有这些值的数组,并将每个值与$associate_details[“country”]进行比较,以确定是否应选择它。除非您将国家/地区存储在数组中-否。您选项的所有值都是硬编码的吗?您是否在数据库或数组中的任何位置定义了它们?“这么多条件”?我只看到一个。。。将所有国家/地区放置在一个数组中,并迭代所有条目。这样,您总共只需要实现一个条件。@dukedevil294 hardcoded是的,就像第一位评论者所写的,除了您已经开始的内容(假设您在PHP中需要这个),没有其他方法可以设置任何内容,因为您只有硬编码的值来比较您的数据库值。如果将其更改为从数据库中提取国家/地区缩写,则可以循环所有这些值的数组,并将每个值与$associate_details[“country”]进行比较,以确定是否应选择它。