-1

実際には、1 つのドロップダウンの選択時に動的ドロップダウンを表示したいと考えています。これが私のhtmlです:

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

次の関数 showcertficate を呼び出しています。

<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 ループを削除すると、正常に動作します。私はすでに1日を無駄にしています。私を助けてください。

4

1 に答える 1

0

まず、属性を持っていないのに属性しか持ってoptionいないという間違った描画をします。2 番目の $.html - 内側の html コード全体を書き直します。$().html ごとに書き直します。最後の変更のみを取得します。namevalue

var options = '';
<?php foreach($certquery as $c) echo "options += '<option>{$c->post_title}</option>"; ?>
$("#cert").html(options);
于 2012-07-25T05:21:57.113 に答える