Wordpress:Jquery.html函数现在在PHP foreach循环中执行


Wordpress: Jquery .html function now executing inside PHP foreach loop

实际上,我想在选择一个下拉列表时显示一个动态下拉列表。这是我的html:

echo  '<select onchange="showcertificate(this.value);" value="'. $certificatelist .'" name=''certificatelist''>';

它正在调用函数showcertificate,它是:

<script type="text/javascript">
  function showcertificate(vendorid)
  {
      var vendorid = vendorid;
      var xmlhttp = new window.XMLHttpRequest();
      xmlhttp.open("GET","admin-ajax.php?action=wpt_exam_certificatelist&u="+vendorid,true);
    xmlhttp.send();
    <?php
      if(isset($_GET["u"]))
      {
     $vendorid = $_GET['u'];
      }
      $certquery = $wpdb->get_results("SELECT * FROM wp_posts INNER JOIN wp_postmeta ON wp_posts.ID=wp_postmeta.post_id WHERE wp_posts.post_status='publish' AND wp_posts.post_type='certificate' AND wp_postmeta.meta_value='$vendorid'");
     foreach($certquery as $c)
        { ?>
    $("#cert").html('<option  name=''certificatelist''><?php echo $c->post_title; ?></option>');
      <?php }
      ?> 
  }
  </script>

问题是.html函数没有在foreach循环中执行。如果我去掉foreach循环,它工作得很好。我已经浪费了一天时间了。请帮帮我。

首先,您画错了option,它没有属性name,它只有属性value。第二个$.html-重写整个内部html代码,每一个$().html都要重写一次,并且只得到最后一次更改。

var options = '';
<?php foreach($certquery as $c) echo "options += '<option>{$c->post_title}</option>"; ?>
$("#cert").html(options);