2013-08-01 1 views
0

많은 새로운 전자 메일이나 새 주석 등의 결과를로드하려고합니다. 그러나 주 페이지를로드 한 후 데이터를 가져오고 싶습니다. 따라서 메인 페이지를 먼저로드 한 다음 jQuery 함수를 사용하여 숫자를 표시하려고합니다.PHP에서 결과 가져 오기 및 페이지로드 후 jQuery와 함께 사용

<ul> 
    <li>new emails (3)</li> 
    <li>new comments (12)</li> 
    <li>new whatever (3)</li> 
</ul> 

은 내가 다음 결과를 얻기위한 PHP 파일을 실행 $(document).ready(function(){});를 사용하는 것을 알고 있지만 그 결과를 다시 얻을 어떻게 내 페이지를 표시하는 방법을 모른다. 누구든지 나를 도울 수 있을까? 아니면 나를 올바른 길로 인도하십시오.

+2

당신이 필요한 것은 http://api.jquery.com/jQuery.ajax/ – zzlalani

+0

입니다. jquery를 살펴보기 전에 아마도 ajax 패러다임을 살펴 보는 것이 좋습니다. http://en.wikipedia.org/wiki/Ajax_ (프로그래밍) – Mangiucugna

답변

0

먼저

jQuery.ajax({
type: "GET",
url: "YOUR PHP FILE PATH HERE",
data: {username:'username'}, // send the data to the PHP page here like username or whatever
dataType: "json",
success: function(data)
{
var unread_emails=data.email;
var unread_comments=data.comments;
var unread_whatever=data.whatever;
jQuery('li#emails').val("New Emails "+unread_email);
jQuery('li#comments').val("New Comments "+unread_comments);
jQuery('li#whatever').val("New whatever "+unread_whatever);
},
error: function()
{
alert("Some error");
});

, 당신은 당신의 수를 포장 할 수 있습니다 span 또는 기타 태그를 id 또는 class으로 수정하고 아약스 요청 후에 업데이트하십시오.

HTML

<ul> 
    <li>new emails (<span id='newEmails'>3</span>)</li> 
    <li>new comments (<span id='newComments'>12</span>)</li> 
    <li>new whatever (<span id='newWhatever'>3</span>)</li> 
</ul> 

JS는

이 스크립트는 yourpage.php에 아약스 요청을하고 JSON 인코딩 된 데이터를 얻을. 그런 다음 JSON을 디코딩하고 HTML에서 카운트를 업데이트합니다.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'yourpage.php',    
     success: function(response){ 
     //parse your json data 
     r = $.parseJSON(response); 

     //update your html   
     var newEmails = r.emailCount; 
     var newComments = r.commentCount; 
     var newWhatever = r.whatever; 

     $('#newEmails').html(newEmails); 
     $('#newComments').html(newComments); 
     $('#newWhatever').html(newWhatever); 
     }, 
     error: function(xhr, status, errorThrown){ 
     //handle ajax error 
     } 
    }); 
    }); 
</script> 

PHP

데이터베이스에서 사용자의 수를 모두 가져 오기 및 배열 안에 저장합니다. 마침내 배열을 인코딩하고 에코합니다.

<?php 
//your database operation 

$data = array(); 
$data['emailCount'] = 5; // your email count from database 
$data['commentCount'] = 10; // your comments count from database 
$data['whatever'] = 15; // your whatever from database 

echo json_encode($data); //encode your data in JSON format 

참고 : 당신은 당신이 혼란스러워하는 경우 JSON을 사용하지 않아도됩니다. 당신은 단지 PHP에서 필요한 데이터를 반향하고 응답으로 얻을 수 있습니다. 그러나 JSON을 사용하여 데이터를 쉽게 인코딩하고 디코딩 할 수 있습니다.

+0

여러분, 고맙습니다. 내 문제를 너무 빨리 해결할 수 있다고 생각하지 않습니다. –

0

jQuery를 사용하여 ajax 호출을 사용하고 특정 간격 (예 : 5 초마다)으로 값을 가져 오려고하지 않는 이유는 무엇입니까? 이 JS 같은 예 :

window.setInterval(function(){ 

    $.ajax({ 
    type: "GET", 
    url: "UR URL", 
    success : function(){ 

     //Your function here 

    } 
    }); 
}, 5000); 
+0

데이터로드가 없어도'$ .get()'을 사용하는 것이 더 깔끔하고 깨끗한 코드 일 것입니다. :) 또한이 유형 = "GET"은 필요하지 않습니다. 기본값 – Martijn

0

JS : 당신의 PHP 모두의

if(isset($_GET['username'])) 
{ 
    **DO YOUR QUERY HERE TO GET UNREAD EMAILS, COMMENTS, WHATEVER and STORE IN VARIABLES** 

    $return=array('unread_emails'=>$unread_emails, 'unread_comments'=>$unread_comments, 'unread_whatever'=>$unread_whatever); 
    echo json_encode($return); 
} 
관련 문제