1

我有一个在 while 循环中工作的弹出消息框,但在弹出地址字段中,所有条目都显示相同的地址。

谁能告诉我我做错了什么?

Html Jquery 脚本

<script type="text/javascript">
$(document).ready(function() {
    $('#button').click(function(e) { 
        $('#modal').reveal({ 
            animation: 'fade',                   
            animationspeed: 600,                       
            closeonbackgroundclick: true,              
            dismissmodalclass: 'close'   
        });
    return false;
    });
});
</script>

<table>
$query1=mysql_query("select * from customers order by id desc");
while($row1=mysql_fetch_array($result))
{
?>
<tr>
<td><div align="center"><?php echo $row1['firstname']; ?></div></td>
<td><div align="center"><?php echo $row1['lastname']; ?></div></td>
<td><div align="center"><?php echo $row1['dob']; ?></div></td>
<td><div align="center"><?php echo $row1['email']; ?></div></td>
<td><div align="center"><a href="#" class="button">Address</a></div></td>
<td><div align="center"><?php echo $row1['phone']; ?></div></td>
<td><div align="center"><?php echo $row1['country']; ?></div></td>
<td><div align="center"><?php echo $row1['city']; ?></div></td>
</tr>


<Popup Start> 

<div id="modal">
<div id="heading">
Sign Up! Customer's Address
</div>
<div id="content">
<p><?php echo $row1['address']; ?></p>
</div>
</div>

<Popup End>

<?php }?>
</table>

弹出在表格的每一行中显示相同的地址

4

1 回答 1

0

问题是您在每个 div 的弹出窗口中使用相同的 ID。因此,无论您调用什么代码来打开弹出窗口,它总是会打开第一个弹出窗口。你需要这样的东西:

<script type="text/javascript">
$(document).ready(function() {
    $('.button').click(function(e) { 
        id = $(this).attr('id').substr(3);
        //alert(id); //uncomment this line to check ID's are coming through fine.
        $('#modal' + id).reveal({ 
            animation: 'fade',                   
            animationspeed: 600,                       
            closeonbackgroundclick: true,              
            dismissmodalclass: 'close'   
        });
    return false;
    });
});
</script>

<table>
<?php
$i = 0;
$query1=mysql_query("select * from customers order by id desc");
while($row1=mysql_fetch_array($result))
{
?>
<tr>
<td><div align="center"><?php echo $row1['firstname']; ?></div></td>
<td><div align="center"><?php echo $row1['lastname']; ?></div></td>
<td><div align="center"><?php echo $row1['dob']; ?></div></td>
<td><div align="center"><?php echo $row1['email']; ?></div></td>
<td><div align="center"><a href="#" id="btn<?php echo $i; ?>" class="button">Address</a></div></td>
<td><div align="center"><?php echo $row1['phone']; ?></div></td>
<td><div align="center"><?php echo $row1['country']; ?></div></td>
<td><div align="center"><?php echo $row1['city']; ?></div></td>
</tr>


<Popup Start> 

<div class="modal" id="modal<?php echo $i++; ?>">
<div class="heading">
Sign Up! Customer's Address
</div>
<div class="content">
<p><?php echo $row1['address']; ?></p>
</div>
</div>

<Popup End>

<?php }?>
</table>

注意其他 div 从 ID 到 Class 的变化。您应该只在一个页面上使用一次 ID。如果您多次重复使用某些东西,它应该是一个类。

你也贴错了标签。这是一个 Javascript / HTML 问题,而不是 PHP 问题。

于 2013-02-16T23:15:03.297 回答