2011-12-01 73 views
-6

我不能得到的功能來運行onClick我無法讓我的JavaScript功能正常工作?

我的問題是我不能讓like_add工作,或者它是onclick不工作,我不知道這就是爲什麼我需要幫助。

它的工作原理,如果我報警數據,但我需要它使=的.text(數據)

test.php的

<?php 
//int 
include '../scripts/connect_to_mysql.php'; 
session_start(); 
$_SESSION['user_id'] = '3'; 

//articles 
function get_post() { 
    $posts = array(); 

    $query = mysql_query("SELECT * FROM `post`"); 
    while (($row = mysql_fetch_assoc($query)) !== false) { 
     $posts[] = array(
      'post_id' => $row['id'], 
      'post_body' => $row['post_body'], 
      'likes' => $row['likes'] 
     ); 
    } 
    return $posts; 
} 

?> 

<!doctype html> 
<head> 
<title>TEST</title> 
<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript"> 
function like_add(post_id) { 
$.ajax({ 
       type: "POST", 
       url: "ajax/like_add.php", 
       data: "post_id=" + post_id, 
       success: 
        function vote_get(post_id) { 

         $.ajax({ 
            type: "POST", 
            url: "ajax/like_get.php", 
            data: "post_id=" + post_id, 
            success: function(data) { alert(data); }, 
            error: function(msg){ 
             alert(msg); 
             }    
         }); 
        }, 
       error: function(msg){ 
        alert(msg); 
       } 
      }); 
} 



</script> 
</head> 
<body> 
<?php 
    $posts = get_post(); 
    if (count($posts) == 0) { 
     echo 'Sorry, there are no posts.'; 
    } else { 
     echo '<ul>'; 
     foreach($posts as $post) { 
      echo '<li><p>', $post['post_body'] ,'</p><p><a href="#" onclick="like_add('.$post['post_id'].')">Like</a>&nbsp;<span id="post_'. $post['post_id'].'_likes">', $post['likes'] ,'</span> people like this</p></li>'; 
     } 
     echo '</ul>'; 

    } 
?> 
</body> 
</html> 
+0

控制檯說什麼爲你 ? ! 因爲我認爲你的代碼有一些錯誤 – Sedz

+1

首先檢查你的所有輸出是否如預期的那樣,並且減少代碼直到你找到工作。只要有些東西按預期工作,請添加一些代碼並查看它是否仍然有效。 – kba

+0

一旦頁面加載完成,你應該避免使用'document.write' - 如果你只是使用'alert()'或'console.log()'進行調試。在你的大塊代碼中,'like_add()'的版本叫做「like_get.php」,但你也顯示了like_add.php的代碼,所以它可能會調用錯誤的東西。它也測試了「成功」的返回值,但是你的like_add.php正在返回「作品」。 – nnnnnn

回答

0

試試這個:

<script type="text/javascript"> 
function like_add(post_id) { 
$.ajax({ 
       type: "POST", 
       url: "ajax/like_add.php", 
       data: "post_id=" + post_id, 
       success: function(post_id){ 
       vote_get(post_id); 
       }, 

       error: function(msg){ 
        alert(msg); 
       } 
      }); 
} 
function vote_get(post_id) { 

         $.ajax({ 
            type: "POST", 
            url: "ajax/like_get.php", 
            data: "post_id=" + post_id, 
            success: function(data) { $('#post_'+post_id+'_likes').text(data); }, 
            error: function(msg){ 
             alert(msg); 
             }    
         }); 
        } 


</script> 
+0

對不起,我真的認爲它會工作它沒有,這就像我的代碼找不到like_add函數 –

+0

在$ .ajax調用之前添加一個警報,例如alert('function found!');',這告訴你它是否可以找到函數 –

+0

並且它不工作,再次:( –