无法在HTML select中预选来自数据库的值

时间:2019-05-30 01:38:01

标签: jquery

我有部分工作代码可以从下拉列表中选择来自MySql / PHP的正确值。

jQuery( document ).ready( function ( $ ) {
  $( '#hosp_country' ).find( 'option[value=<?php echo $tE['hosp_country']; ?>]' ).attr( 'selected', 'selected' );
   } );

如果值$ tE ['hosp_country']-是一个单词,则一切正常,例如,在选择项“阿根廷”或“亚美尼亚”中选择了正确的值。

如果该值超过一个带空格的单词,则不会选择该值。例如“ Bovet Island”或“ Czech Republic”。

我有什么不对?

1 个答案:

答案 0 :(得分:0)

代码中的问题是,您没有在jquery属性选择器内用双引号括住value属性的值。

正确的代码如下:

jQuery( document ).ready( function ( $ ) {
  $( '#hosp_country' ).find( 'option[value="<?php echo $tE['hosp_country']; ?>"]' ).attr( 'selected', 'selected' );
});

但是有一种更好的方式来做您想要的事情。只需将您想要的值提供给选择输入即可。

$(document).ready(() => {
  // Give the value to select input
  $('#hosp_country').val('Czech Republic');
  // With php, your code should look like:
  // $('#hosp_country').val('<?php echo $tE['hosp_country']; ?>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select id="hosp_country">
  <option>Argentina</option>
  <option>Armenia</option>
  <option>Czech Republic</option>
  <option>Bovet Island</option>
</select>