2013-05-22 79 views
7

我這是寫在一個單獨的文件該find_all()函數:PHP:我的按鈕不正常foreach循環內工作

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) - 確認用戶是否要刪除他/她的數據。如果用戶點擊取消,該窗口將關閉,如JavaScript代碼所示。如果用戶點擊YES,則它被SUPPOSED轉到鏈接:list_users.php?parentNum = parentNum; ?>($ parent-> parentNum的值對於每一行都是不同的)。然而,錨標籤總是檢索第一行的鏈接,而不管它是第三行還是其他(順便說一下,其他td標籤上的鏈接工作)。現在,我的問題是,如何正確鏈接彈出div上每行的YES按鈕?

+0

你是否在任何地方聲明瞭parentNum的值? – NCoder

+1

顯示將值分配給'$ parents'的代碼 –

+0

parentNum位於父類內部,因此不需要聲明它。它從我的數據庫中提取數據。順便說一下,TD上的鏈接工作,所以parentNum並不是真正的問題。 – YourMom

回答

4

的$父 - > 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... } 

接收您的'show'事件。

+0

我也這麼認爲。我只是不知道如何正確鏈接按鈕。 – YourMom

+0

不確定你的意思?製作一個'

'元素,並將所有內容都包含在內。然後,當你點擊按鈕時,頁面提交(重新加載)$ _POST填充。 ''標籤會自行處理,可以在表格的內部或外部。 – Ben

+0

我在編輯回覆之前發表了這篇文章。只是無視我的評論。無論如何,謝謝你的迴應,史蒂夫。我會在稍後做。 – YourMom

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; ?> 
+0

如何爲parentNum創建一個數組?我該如何正確地循環訪問數組? – YourMom

+0

好吧現在試試..... – NCoder

+0

感謝您的回覆。我忘了告訴我有這個函數:$ parents = UserParent :: find_all();.而且,$ parent-> parentNum是您如何從userParent類中檢索parentNum的方法。它從數據庫中檢索數據,並且它不應該被初始化,因爲數據已經可用。 – YourMom