0

私はphpに次のドロップダウンリストを持っています:

<select id="choice" name="choice" style="width: 121px">
    <?php 
    foreach($xml->children() as $pizza){
    ?>
    <option value="<?php echo $pizza; ?>" selected=""><?php echo $pizza; ?></option>
    <?php }?>
</select><input TYPE = "button" id="addbt" Name = "addbt" VALUE = "Add Pizza">

私は次のJqueryを使用しています:

<script type="text/javascript">

  $("#addbt").click(function () {
     $('#choice').clone().insertAfter("#choice");
  });

</script>

XMLファイルに添付されているドロップダウンリストのクローンを作成し(ここまで管理しました)、必要なJqueryを追加して、新しいドロップダウンリストのクローンごとに新しいIDを持たせようとしています(単一の番号の違いで十分です。choices_00のようなもの次にchoices_01など)。

私は Jquery と php にまったく慣れていないので、アドバイスや助けを求めています。

4

4 に答える 4

4
 $("#addbt").click(function () {
     $('#choice').clone()
         .attr('id', 'newid')
         .attr('name', 'newname')
         .insertAfter("#choice");
  });

毎回新しい名前とIDを確実に取得するには、クラス名をselectに追加して、存在する数を数えることを検討してください。

HTML:

<select id="choice" name="choice" class="ddl" style="width: 121px">
    <?php 
    foreach($xml->children() as $pizza){
    ?>
    <option value="<?php echo $pizza; ?>" selected=""><?php echo $pizza; ?></option>
    <?php }?>
</select>

JS:

 $("#addbt").click(function () {
     $('#choice').clone()
         .attr('id', 'choice' + $('.ddl').length)
         .attr('name', 'choice' + $('.ddl').length)
         .insertAfter(".ddl:last");
  });

それ以外の場合は、グローバル変数(ugh)またはデータ属性を使用してボタンがクリックされた回数を追跡します。

于 2013-01-08T18:43:14.537 に答える
0

あなたはこの後だと思います:http://jsfiddle.net/ehQan/

$("#addbt").click(function () {
    $('#choice').clone().attr( 'id', 'choices_' +$(this).index()).insertAfter("#choice");
});
于 2013-01-08T19:02:02.433 に答える
0

このコードを使用すると、ボタンを何度でも押すことができます。

<script type="text/javascript">

  var times = 0;
  $("#addbt").click(function () {
    times++;
    $('#choice').clone().attr( 'id', 'choices_' + times ).insertAfter("#choice");
  });

</script>
于 2013-01-08T18:53:24.920 に答える
0

attr()挿入する前に、jQuery メソッドを使用して ID を変更できます。

<script type="text/javascript">

    $("#addbt").click(function () {
        $('#choice').clone().attr('id','Your new id').insertAfter("#choice");
    });

</script>
于 2013-01-08T18:44:37.890 に答える