PHP:我的按钮在foreach循环中没有正常工作

时间:2013-05-22 02:29:32

标签: php javascript html foreach

我有这个find_all()函数,它写在一个单独的文件中:

public static function find_all() {
    return self::find_by_sql("SELECT * FROM ".self::$table_name);
}

它在包含我的foreach循环的文件顶部被引用:

<?php require_once("../../includes/initialize.php"); ?>
<?php if (!$session->is_logged_in()) { redirect_to("login.php"); } ?>
<?php
    $parents = UserParent::find_all();
?>

这是foreach循环:

<?php foreach($parents as $parent): ?>
        <div class='popup-screen' id = "popup">
          <div class = "spacing">
            Do you want to delete this data?
          </div>
            <a href="list_users.php?parentNum=<?php echo $parent->parentNum; ?>"> <input type="button" value="YES" class = "popup-button"> </a>
            <input type="button" value="CANCEL" class = "popup-button" onClick = "hide();">
        </div> 
        <tr class = "tr-1">
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><img src="../<?php echo $parent->image_path(); ?>" width="100" height = "100" class = "profile-pic"/></td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';">Parent</td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><?php echo $parent->username; ?></td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><?php echo ucwords($parent->firstName); ?></td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><?php echo ucwords($parent->lastName); ?></td>
          <td onClick = "show();"><img src = "../stylesheets/images2/delete-icon.png" height="25" width="25" ></td>  
        </tr>
<?php endforeach; ?>

这是javascript代码:

function show() 
{
    document.getElementById("popup").style.display='block';
}

function hide(){
    document.getElementById("popup").style.display='none';
}

基本上,我的代码所做的是创建从foreach循环获取数据的信息行。在每行的末尾是一个删除图标,如img标记所示。点击删除图标后,show()函数将运行(show()函数只显示弹出div,它是不可见的) - 确认用户是否想要删除他/她的数据。如果用户单击CANCEL,则窗口将关闭,如javascript代码所示。如果用户单击是,则支持转到链接:list_users.php?parentNum = parentNum; ?&GT; ($ parent-&gt; parentNum的值对于每一行是不同的)。但是,锚标记ALWAYS会检索第一行的链接,无论它是第三行还是其他(顺便说一下,其他td标记上的链接都可以工作)。现在,我的问题是,如何正确链接弹出div上每行的YES按钮?

2 个答案:

答案 0 :(得分:4)

  

$ parent-&gt; parentNum的值对于每一行

是不同的

但是在你的代码中,它不是:

<?php echo $parent->parentNum; ?>

该值不会递增或更改,也不会对所有行都相同。


另外,我强烈建议使用<button><a>元素。这就是他们的目的。 <td>并不意味着被点击。良好的设计实践(几乎)总是值得花一点额外的努力。

IMO,您的代码应该更像

...
<td><a href='viewParent.php?n=<?php echo $n; ?>'></a></td>
...
<button name='show' value='1'>Show</button>

...其中$n来自for循环。然后在页面顶部

if (isset($_POST['show'])) { ...logic... }

接收“节目”活动。

答案 1 :(得分:2)

<?php 

$parentNum = 0;

foreach($parents as $parent): ?>
        <div class='popup-screen' id = "popup">
          <div class = "spacing">
            Do you want to delete this data?
          </div>
            <a href="list_users.php?parentNum=<?php echo $parent[$parentNum]; ?>"> <input type="button" value="list_users.php?parentNum=<?php echo $parent[$parentNum]; ?>" class = "popup-button"> </a>
            <input type="button" value="CANCEL" class = "popup-button" onClick = "hide();">
        </div> 
        <tr class = "tr-1">
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><img src="../<?php echo $parent->image_path(); ?>" width="100" height = "100" class = "profile-pic"/></td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';">Parent</td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><?php echo $parent[$parentNum]->username; ?></td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><?php echo ucwords($parent[$parentNum]->firstName); ?></td>
          <td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><?php echo ucwords($parent[$parentNum]->lastName); ?></td>
          <td onClick = "show();"><img src = "../stylesheets/images2/delete-icon.png" height="25" width="25" ></td>  
        </tr>
<?php 

$parentNum++;

endforeach; ?>
相关问题