php循环从jquery弹出框和对话框

时间:2014-05-15 06:03:18

标签: php jquery codeigniter dialog popup

您好我正在使用一个名为CodeIgniter的框架及其MVC示例。我需要一个弹出框,它会显示一个应用程序的子值,但是每次我回显它时,我的对话框都不起作用。但是你看我需要为不同的值循环对话框。我的代码在下面

<?php 

        foreach($people as $row){
          echo"<div id='dialog' title='Basic dialog'>".$row->app_name."</div>";
          echo "<button id='opener'>".$row->app_name."</button>";}
                                ?>

我的javascrip代码来自jquery

  <script>
      $(function() {
        $( "#dialog" ).dialog({
          autoOpen: false,
          show: {
            effect: "blind",
            duration: 1000
          },
          hide: {
            effect: "explode",
            duration: 1000
          }
        });

        $( "#opener" ).click(function() {
          $( "#dialog" ).dialog( "open" );
        });
      });
      </script>

3 个答案:

答案 0 :(得分:0)

使用事件委托

$(document).on("click" ,  "#opener" ,function() {
          $( "#dialog" ).dialog( "open" );
 });

答案 1 :(得分:0)

更新代码如下:

<?php 
    $i = 1;
    foreach($people as $row){
      echo"<div id='dialog". $i."' title='Basic dialog'>".$row->app_name."</div>";
      echo "<button id='opener". $i."'>".$row->app_name."</button>";
    ?>
    <script>
        $(function() {
          $( "#dialog<?php echo $i?>" ).dialog({
            autoOpen: false,
            show: {
              effect: "blind",
              duration: 1000
            },
            hide: {
              effect: "explode",
              duration: 1000
            }
          });

          $( "#opener<?php echo $i?>" ).click(function() {
            $( "#dialog<?php echo $i?>" ).dialog( "open" );
          });
        });
    </script>
    <?php
     $i++;
    }
?>

基本上会有多个弹出窗口,你需要为每个弹出窗口和按钮提供唯一的ID。

答案 2 :(得分:0)

在这种情况下使用 id 并不是一个好主意...你应该将id改为 class

 echo "<button class='opener'>".$row->app_name."</button>";

然后

$( ".opener" ).click(function() {
     $( "#dialog" ).dialog( "open" );
});

id是唯一的,您应该使用类


享受:)