2012-07-25 3 views
1

약간의 문제가 있습니다. 파일에 ajax 요청을 보내야합니다.ajax를 사용하여 데이터베이스에 좋아요/싫어요 보내기

<?php 
if(!is_logged()) { 
    header("Location: ./?act=Home"); 
die(); 
} 
$uid = $user['id']; 
$id = $_GET['id']; 
if(isset($id)) { 
    $query = mysql_query("INSERT INTO ld (auth_id,post_id,val) 
          VALUES ('".$uid."','".$id."','1')"); 
    if($query) { 
    header("Location: ".$_SERVER['HTTP_REFERER']); 
    } else { 
    echo "Contatta l'amministratore riportando l'errore 101"; 
    } 
} else { 
header("Location: ./?act=Home"); 
} 
?> 

그리고 내 "LD"테이블 :

== Struttura della tabella ld 

|------ 
|Campo  |Tipo  |Null|Predefinito 
|------ 
|//**id**//|int(5) |No | 
|auth_id |varchar(5)|No | 
|post_id |varchar(5)|No | 
|val  |varchar(1)|No | 
== Dump dei dati per la tabella ld 

|5|4|1|1 
|6|4|1|1 
|7|4|1|1 
|8|4|1|1 
|9|4|1|1 
|10|4|1|1 
|12|4|1|1 
|13|4|1|1 
|14|4|1|2 
|20|4|15|1 
|23|5|17|1 
|29|4|17|1 
|30|4|18|1 
== Struttura della tabella ld 

|------ 
|Campo  |Tipo  |Null|Predefinito 
|------ 
|//**id**//|int(5) |No | 
|auth_id |varchar(5)|No | 
|post_id |varchar(5)|No | 
|val  |varchar(1)|No | 

정말 돈 ' 여기 내 HTML 파일 (index.html을)

<a id="like" href="./?act=like&id=24" title="Nobody likes this post!">Like</a> &middot; <a id="dislike" href="./?act=dislike&id=24" title="Nobody dislikes this post!">Dislike</a> 

그리고 내 like.php 파일입니다 아약스 요청을 보내는 법을 알고 있고, 아약스를 배우려고했지만 아무리해도 나는 그것을 이해할 수 없다.

+3

이 어떤 해명을 요청하는 부담을 너의 자바 스크립트? –

+1

jQuery의 ajax 도우미 메서드를 살펴 보셨습니까? 훨씬 쉬워집니다! –

+0

아약스 요청을 코딩하는 방법을 모르겠습니다./ – Denn

답변

2

jquery를 사용해야합니다. 실제로 jquery를 사용하면 매우 간단합니다. 먼저 HTML 파일이 포함됩니다

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

다음이 추가, 그것은 "청취자"라고하며 그것은 당신의 링크를 클릭하면이 경우에주의를 기울이고 내 예와

// A # is used since we are using an id to get the element 
// A . is used for a class, but we are using the id at the moment 
$('#like').click(function(e) { // We assign a click listner with a handler (a function) 
    e.preventDefault(); // run this to stop it from going to a new page automatically 
    $.get('./', {'act' : 'like', 'id' : $(this).attr('data')}, function(e) { 
    // Handle success here 
    }, 'json'); // expecting a json object back by using echo json_encode(array(...)) in PHP 
}); 

<a id="like" href="" data="24" title="Nobody likes this post!">Like</a> 

을 그리고 당신은 혐오와 같은 일을 할 수있는 : 당신은이에 HTML을 변경해야합니다. {}은 $ .get에서 두 번째 매개 변수로 사용한 것으로, 자바 스크립트 배열은 fyi입니다. 여기에 내가 jQuery의 문서에 사용 된 $ 갔지 방법은 다음과 같습니다 http://api.jquery.com/jQuery.get/이며이 문서 체크 아웃 어떻게 작동하는지 어떤 아약스에 대한 자세한 내용은

: http://www.webdesignerdepot.com/2008/11/how-ajax-works/

+0

대단히 감사하고 싶습니다! 또 다른 질문 : 실시간으로 좋아하는 수를 얻으려면 Ajax를 다시 사용해야합니까? – Denn

+1

이것은 처리기 이벤트 (function (e) {})의 일부입니다. 따라서 X가 좋아한다고 가정하면 X + 1이 있어야하지만 10 명의 다른 사람들이 자신이 가진 이후로 무엇이든 좋아할 가능성이 있습니다. 백엔드 스크립트에서이 현재 사람의 #을 업데이트 한 후 좋아하는 사람의 수를 얻어야합니다. 그런 다음이 번호를 반환하고 처리기를 사용하여 표시된 번호를 변경하십시오. 당신이 그것을 좋아하지 않고 계속적으로 업데이트하기를 원한다면 타이머 스크립트를 설정하여 매 X 분마다 실행하여 각 일에 대해 좋아하는 수를 얻을 수있는 다른 스크립트에 접근하십시오 :)! – MasterGberry

+0

도움, 고맙습니다. :) – Denn

관련 문제