2013-04-04 45 views
0

我遇到了jquery中對話框的問題,我有一個查詢可以將循環中的4項數據放入div中。我想通過一個對話框讓每行可用於獲取更多信息。多個對話框

頭TAG:

<link rel="stylesheet" 
href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" /> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>  


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

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

PHP:

foreach($veh as $v){ 
     echo '<div class="block">'; 

     $sql = "SELECT * FROM table"; 
      $result = $dbh->query($sql); 
      $row = $result->fetchall(PDO::FETCH_ASSOC); 


    foreach($row as $r){    

     echo '<div class="effect6">'.strtoupper($r['col_name']).'</div>'; 
     echo '<div id="dialog" title="'.$r['eas_no'].'">Text</div>'; 
     echo '<button id="opener">Open</button>'; 
          } 

       echo '</div>'; 

       } 

編輯 每一個對話框現在打開......

回答

2

試着改變你的代碼如下:

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

    $(".opener").bind("click", function() { 
     var selectorClass = ".dialogDiv" + $(this).attr("id"); 
     $(selectorClass).dialog("open"); 
    }); 
    }); 
</script> 

$tmp = 0; 
foreach($row as $r) {    

    echo '<div class="effect6">'.strtoupper($r['col_name']).'</div>'; 
    echo '<div class="dialogDiv'.$tmp.' dialog" title="'.$r['eas_no'].'">Text</div>'; 
    echo '<button class="opener" id="'.$tmp.'">Open</button>'; 
    $tmp++;  
    } 
+0

爲什麼要將ID改爲CLASS會有所作爲? – Brobina 2013-04-04 09:20:02

+1

由於頁面上只能有一個ID,因此ID是唯一的。類不是唯一的,你可以用它來引用你的對話框。作爲@Uberfuzzy傷心 – freshbm 2013-04-04 09:21:26

+0

好吧即時半路,現在,謝謝。他們現在開放,只是每個單人開放約109. – Brobina 2013-04-04 09:28:39

1

您正在多件事情使用相同的ID(dialogopener)。 ID應該是唯一的頁面上

+0

好先生明顯。哈哈,現在我需要讓一些腦細胞工作。關於在jQuery(新手)中獲取新鮮ID的任何提示,我可以將它排序爲PHP端 – Brobina 2013-04-04 09:19:14