PHP:我的按钮在foreach循环中无法正常工作

前端之家收集整理的这篇文章主要介绍了PHP:我的按钮在foreach循环中无法正常工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个find_all()函数,它写在一个单独的文件中:
  1. public static function find_all() {
  2. return self::find_by_sql("SELECT * FROM ".self::$table_name);
  3. }

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

  1. <?PHP require_once("../../includes/initialize.PHP"); ?>
  2. <?PHP if (!$session->is_logged_in()) { redirect_to("login.PHP"); } ?>
  3. <?PHP
  4. $parents = UserParent::find_all();
  5. ?>

这是foreach循环:

  1. <?PHP foreach($parents as $parent): ?>
  2. <div class='popup-screen' id = "popup">
  3. <div class = "spacing">
  4. Do you want to delete this data?
  5. </div>
  6. <a href="list_users.PHP?parentNum=<?PHP echo $parent->parentNum; ?>"> <input type="button" value="YES" class = "popup-button"> </a>
  7. <input type="button" value="CANCEL" class = "popup-button" onClick = "hide();">
  8. </div>
  9. <tr class = "tr-1">
  10. <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>
  11. <td onClick = "document.location = 'viewParent.PHP?parentNum=<?PHP echo $parent->parentNum; ?>';">Parent</td>
  12. <td onClick = "document.location = 'viewParent.PHP?parentNum=<?PHP echo $parent->parentNum; ?>';"><?PHP echo $parent->username; ?></td>
  13. <td onClick = "document.location = 'viewParent.PHP?parentNum=<?PHP echo $parent->parentNum; ?>';"><?PHP echo ucwords($parent->firstName); ?></td>
  14. <td onClick = "document.location = 'viewParent.PHP?parentNum=<?PHP echo $parent->parentNum; ?>';"><?PHP echo ucwords($parent->lastName); ?></td>
  15. <td onClick = "show();"><img src = "../stylesheets/images2/delete-icon.png" height="25" width="25" ></td>
  16. </tr>
  17. <?PHP endforeach; ?>

这是javascript代码

  1. function show()
  2. {
  3. document.getElementById("popup").style.display='block';
  4. }
  5.  
  6. function hide(){
  7. document.getElementById("popup").style.display='none';
  8. }

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

The value of $parent->parentNum is different for each row

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

  1. <?PHP echo $parent->parentNum; ?>

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

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

IMO,你的代码看起来应该更像

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

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

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

接收你的’节目’活动.

猜你在找的PHP相关文章