2012-05-07 3 views
1

블로그는 '좋아요'와 '싫어함'버튼이있는 블로그 유형과 likes/(좋아요 + 싫어요)의 mysql 쿼리 인 위 등급으로 블로그 유형 웹 페이지를 만들고 있습니다.). 사용자가 좋아요를 클릭하거나 싫어하면 db에 투표를 추가하고 페이지를 다시로드하지 않고도 등급 값을 동적으로 변경하려고합니다. 여기에 HTML 코드가 약간 있습니다. 자바 스크립트로 간신히 작업 했으므로 도움이 될 것입니다.자바 스크립트로 PHP 값을 동적으로 변경하기

<div class="narrow_right_container"> 
    <?php 
    $popularity = get_popularity($row); 
    ?> 
    <div class="yellow_bg">Rating: <?php echo $popularity . "%"; ?></div> 
    <div style="margin-left:2px;"> 
    <div class="dislike"> 
     <a href="#"><img src="ui_images/dislike.png"/></a> 
     <span>Dislike</span> 
    </div> 
    <div class="like"> 
     <a href="#"><img src="ui_images/like.png" /></a> 
     <span>Like</span> 
     </div> 
    </div> 
</div> 

답변

0
$('.like').click(function(){ 
    rate(1); 
}) 
$('.dislike').click(function(){ 
    rate(-1); 
}) 

function rate(_val){ 
$.ajax({ 
    url: 'ajax/rate.php?val='+_val, 
    success: function(data) { 
    alert('Rate was performed.'); 
    $(".narrow_right_container").find(".yellow_bg").append("Rating: "+data+"%"); 
    } 
}); 
} 

rate.php의 : 원래 바로 첫 문장이 있었기 때문에

if(isset($_GET['val'])){ 
    $sql = "UPDATE.........."; //do an update to your rate table 
    echo get_popularity($row); //return rating to ajax 
} 
1

이 작업을 수행하려면 ajax를 사용해야합니다. VIA javascript를 사용하여 PHP 변수를 변경할 수 없습니다.

데이터베이스 작업을 처리 할 Ajax 함수를 호출해야하며 완료 후에는 javascript를 사용하여 개수를 업데이트해야한다.

Example Code
Live Demo

이 카운트는 또한 데이터베이스에 업데이트됩니다 동안 카운트가 여기에

당신은이 작업을 수행 할 수있는 방법의 좋은 예입니다 (아약스에서) 업데이트되었다는 암시를 줄 것이다

+0

나는 원래 downvote했다 -하지만 난 이후 downvote을 제거하여 편집하다. –

1

PHP 값을 실제로 변경하지는 않을 것입니다. 일단 페이지가 브라우저에 출력되면 PHP는 사라 졌다고 생각하십시오. 서버에 있기 때문에 상호 작용할 수 없습니다. 대신 브라우저에있는 문서와 상호 작용하는 것을 고려하십시오.

이것을 수행하는 가장 좋은 방법은 서버 측 스크립트에 대한 ajax 호출을 작성하는 것입니다. 서버 측 스크립트는 데이터베이스에 좋아요 또는 싫어하는 것을 적용한 다음 새 등급을 반환 할 수 있습니다.이 등급은 자바 스크립트를 사용하여 이전 등급 대신 삽입 할 수 있습니다.

javascript 및 ajax에 대한 자습서를 확인하는 것이 좋습니다. 특정 문제보다는 자습서가 더 일반적으로 필요한 것 같습니다. 즉, 일반 과목의 지식 격차를 메우면 특정 문제를 쉽게 해결할 수 있습니다.

1

서버 측 데이터베이스에 저장하는 데 필요한 PHP 코드를 만들어야합니다. 이 서 v 측 스크립트에 like/dislike 값 정보를 POST합니다. 가능하다면 방금 작성한 PHP 페이지에 데이터를 게시하려면 jQuery's AJAX 도우미를 사용합니다. 이 같은

뭔가 :

$.ajax({ 
    url: "whatever.php", 
    type: "POST", 
    data: {Like: true}, 
    success: function(data){ /* update view */} 
}); 
관련 문제