2010-09-04 15 views
5

इम एक PHP स्क्रिप्ट जो एक डेटाबेस के लिए कुछ मूल्य लिखते से मान भेजने का अजाक्स का उपयोग:अजाक्स पद वापसी मान

$.ajax({ 
    type: "POST", 
    data: "action=vote_down&id="+$(this).attr("id"), 
    url: "vote.php", 
    success: function(msg) { 
     $("span#votes_count"+the_id).fadeOut(); 
     $("span#votes_count"+the_id).html(msg); 
     $("span#votes_count"+the_id).fadeIn();      
    } 
}); 

आप शायद action=vote_down से बता सकते हैं के रूप में स्क्रिप्ट एक मतदान स्क्रिप्ट के लिए है।

मैं पहले से ही उपयोगकर्ता को vote.php में उपयोगकर्ता नाम और आईडी के खिलाफ वोट दर्ज करके एक से अधिक बार मतदान करने से रोक रहा हूं और यदि उपयोगकर्ता नाम और आईडी पहले से ही उसी पोस्ट के खिलाफ डीबी में है तो मैं डीबी को वोट नहीं जोड़ता।

मैं व्यक्तिगत रूप से है कि प्रत्येक पृष्ठ लोड पर डेटाबेस से क्वेरी ही उपयोगकर्ता पहले मतदान किया गया है काफी गहन, एक ही पृष्ठ पर वोट करने के लिए कई स्थानों पर देखते हैं हो सकता है की जांच करने के बारे में सोचो।

तो इसके बजाय मैं उपयोगकर्ता को वोटिंग विकल्प दिखाऊंगा, लेकिन जब वे वोट देते हैं तो मैं कुछ कहना चाहता हूं कि vote.php से एक मूल्य वापस कैसे कहें कि वे पहले ही मतदान कर चुके हैं।

यह करने के लिए सबसे अच्छा तरीका के लिए कोई भी विचार?

उत्तर

1

यह सही दिशा में रखना चाहिए ...

http://forum.jquery.com/topic/jquery-ajax-and-php-variables

मैं वापस एक बूलियन झूठी पार्स होगा अगर वे पहले से ही पोस्ट किया है, या मतदान का आईडी अगर वे सफल रहे थे (स्टाइल के लिए/HTML संदेश जोड़ने)।

2

उपयोग JSON

यदि यह मतदान प्रपत्र दिखाने के लिए अपने फ़ाइल है:

<div id='voteform-div'> 
<form id='voteform'> 
    Your form elements and a submit button here. 
</form> 
</div> 

इस तरह आपका जे एस कोड नज़र:

jQuery('#voteform').live('submit',function(event) { 
    $.ajax({ 
     url: 'vote.php', 
     type: 'POST', 
     data: "action=vote_down&id="+$(this).attr("id"), 
     dataType: 'json', 
     success: function(messages) { 
      for(var id in messages) { 
       jQuery('#' + id).html(messages[id]); 
      } 
     } 
    }); 
    return false; 
}); 

अपने vote.php होना चाहिए कुछ इस तरह:

// Get data from $_POST array. 

if(Already voted) { 

    // It will replace the id='voteform-div' DIV with error message 
    $arr = array ("voteform-div" => "you have already voted."); 

} else { 

// Store vote in database 

    // It will replace the id='voteform-div' DIV with confirmation message 
    $arr = array ("voteform-div" => "Yor vote is submitted. Thanks"); 

} 

echo json_encode($arr); // encode array to json format 



this question पर इस पर अधिक जानकारी के लिए।

संबंधित मुद्दे