2014-09-22 75 views
1

我想爲我的帖子編輯一個函數。到目前爲止,您可以從由mySQL運行的管理頁面發佈並查看您的帖子,但不久前我想編輯一個按鈕。 理論是,當你點擊編輯按鈕時,javascript獲得post元素的id,然後在運行一個mysql查詢,其中id = PostID後,它將重定向到一個頁面,在那裏你可以編輯帖子。 html輸入值將是從mysql讀取的數據,但JavaScript不想啓動。點擊函數調用JavaScript然後重定向到PHP頁面

帖子的PHP/HTML看起來像這樣:

while($row = mysqli_fetch_array($run)) { 
echo '<article id="post" data-postid="'.$row["id"].'"> 
    <ul> 
     <li class="id">'.$row["id"].'</li> 
     <li class="title">'.$row["title"].'</li> 
     <li class="postedBy">'.$row["postedBy"].'</li> 
     <li class="postedBy">'.$row["dDate"].'</li> 
     <li class="prio">'.$row["priority"].'</li> 
     <li class="icons"><div class="do" data-action="edit"><i class="fa fa-pencil-square-o"></i></div><div class="do" data-action="delete"><i class="fa fa-times"></i></div></li> 
    </ul> 
</article>'; 

的Javascript看起來是這樣的(它被稱爲admin_edit.js):

$('#post').on('click', '.do', function(){ 
     var self = $(this); // cache $this 
     var action = self.data('action'); // grab action data edit/delete 
     var postid = parent.data('postid'); // grab post id from data-postid 

     // edit action 
     if (action == 'edit') { 
      // send js to php 
      $.post("../admin/post_edit.php", { postId: postid }); 
     } 
     // delete action 
     else if (action == 'delete'){ 
      // send ajax request 
      // Something. 
     }; 

    }); 

理解我的文件夾結構: 我們在root/admin文件夾和root/admin/admin.php頁面上。 javascript位於root/js文件夾中,名爲root/js/admin_edit.js。

爲什麼js不想啓動?

在此先感謝!

+0

當它的事件被定義時#post是否存在? – 2014-09-22 14:28:40

+0

它是由ajax請求生成的! (Magyar vagyok) – Zh4rsiest 2014-09-22 14:29:39

+0

這就是問題所在!我將#post更改爲#main,現在它重定向,但沒有任何$ _POST ['something']參數。 – Zh4rsiest 2014-09-22 14:31:06

回答

1

當您定義其click事件時,您的#post不存在。您需要在事件已經存在時定義事件。您可以註冊事件#main,但您也可以在請求的回調中註冊該事件。如果可能的話,最好在回調中註冊它。

相關問題