2015-06-12 5 views
5

मैं प्रतिशत पूर्ण (प्रक्रिया बार) बनाना चाहता हूं जो मुझे दिखाता है कि डेटा कितना संसाधित किया जाता है। यह मेरा php कोड है:प्रतिशत पूर्ण करें (jQuery + php)

$w->connect(); 
try { 
    $w->loginWithPassword($password); 
} 
catch (exception $e) { 
    return false; 
} 
foreach($targets as $target) 
{ 
    $w->sendMessage($target, $text); 
} 
return true; 

foreach प्रक्रिया है जो मैं दिखाने के लिए कितने संदेश भेजे जाने से चाहते हैं। अब js में मेरे पास है:

function send_message(){ 
    var msg = {msg_receptions:$('#msg_receptions').val(),msg_from:$('#msg_from').val(),msg_text: $('#msg_text').val()}; 
$.post(
     site_url('ajax/send_message'), 
     msg, 
     function(data, status){ 

     } 
     ); 
    } 

मैं नहीं जानता कि कैसे प्रतिशत पूर्ण दिखाने के लिए प्रक्रिया बार बनाने के लिए!

उत्तर

2

टिप्पणियों के आधार पर संपादित करें।

यदि आप ट्रैक करना चाहते हैं कि आपके कितने संदेश अपलोड किए गए हैं, तो आपको एक मौजूदा सत्र में मतदान प्रणाली की आवश्यकता है (आप सॉकेट के साथ कर सकते हैं, लेकिन यह जटिल हो रहा है)।

PHP में, एक सत्र शुरू करें (पहले पृष्ठ को लोड करने से पहले) और प्रगति को संग्रहीत करने के लिए सत्र चर बनाएँ। जिस पृष्ठ पर आप पोस्ट करते हैं, उसी सत्र का उपयोग करें, 0 पर प्रगति सेट करें और हर बार SendMessage लूप सेट करें, नवीनतम चर के साथ उस चर को अपडेट करें।

जेएस में, AJAX (इसलिए एचटीएमएल रहता है) का उपयोग करके PHP अनुरोध सबमिट करें और फिर setTimeout() का उपयोग करने के लिए एक नई AJAX अनुरोध करने के लिए आपको एक ही सत्र का उपयोग करने के लिए लिखने की आवश्यकता है, अद्यतन प्रगति डेटा और रिटर्न प्राप्त करता है यह - वह प्रारंभिक उत्तर के समान होगा। जब आपको कोई प्रतिक्रिया मिलती है, तो setTimeout दोबारा दोहराएं और दोहराएं (setInterval का उपयोग न करें क्योंकि आप ऐसा करने वाले सर्वर को क्रैश कर सकते हैं)। जब प्रारंभिक अनुरोध लौटाता है, तो टाइमआउट को मार दें।

अंतिम नोट: jQueryUI का उपयोग करना इसके लिए अधिक है; इसलिए केवल इसका उपयोग करें यदि आपके पास अन्य सामान हैं जिनका आप इसका उपयोग कर रहे हैं। अन्यथा यह कोड की 10 पंक्तियां (नीचे) है।

आशा है कि प्रश्न की सहायता/उत्तर दें।

** पिछला जवाब **

ऐसा करने का सबसे आसान तरीका है एक दूसरे को अंदर दो रैप दो divs है।

आपका स्टाइलशीट शामिल करना चाहिए:

<style> 
    .progressBar { 
     position: relative; 
     border: 1px solid black; /* Style as you see fit */ 
    } 
    .progressIndicator { 
     position: absolute; 
     left: 0; 
     top: 0; 
     width: 0; 
     height: 10%; 
     background: #f00; /* Style as you see fit */ 
    } 
</style> 

आपका HTML शामिल करना चाहिए

<html> 
    <div class="progressBar"> 
     <div class="progressIndicator"> 
     </div> 
    </div> 
</html> 

आपका जावास्क्रिप्ट (jQuery) प्रतिक्रिया को शामिल करना चाहिए

$('.progressIndicator').css({width: parseInt(data, 10) + "%"}); 

(कहाँ डेटा मूल्य के बीच दिया जाता है 0 और 100)

+0

अच्छा जवाब, +1, उस 10k के करीब भी;) – Darren

+0

नहीं, यह मेरा जवाब नहीं है। मैं वास्तविक प्रक्रिया प्रतिशत को पूरा करना चाहता हूं। मैं jquery ui के साथ प्रक्रिया पट्टी कर सकते हैं। – Hamed

+0

कितना डेटा अपलोड किया गया है? या क्या लॉगिन लंबे समय से ले रहा है और आप जानना चाहते हैं कि लॉगिन प्रक्रिया कितनी दूर है? – Robbie

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