2012-05-08 10 views
8

http://pastebin.com/dttyN3L6कैसे लगातार पेज

फ़ाइल उस प्रपत्र को संसाधित करता है

upload.php

मैं वास्तव में कभी नहीं इस्तेमाल किया है jQuery/js तो मैं अनिश्चित मैं यह कैसे करना होगा हूँ या कहा जाता है का एक हिस्सा अद्यतन करने के लिए जहां मैं कोड डालूँगा।

यह इस setInterval (loadLog, 2500);

इसके अलावा के साथ कुछ किया है, मैं इसे कैसे इतना उपयोगकर्ता पृष्ठ ताज़ा बिना एक फार्म जमा कर सकते हैं कर सकते हैं?

$.ajax({ 
    type: "POST", 
    url: "upload.php", 
    data: dataString, 
    success: function() { 

    } 
}); 
return false; ` 

और

<?php 
$conn1 = mysqli_connect('xxx') or die('Error connecting to MySQL server.'); 
$sql = "SELECT * from text ORDER BY id DESC LIMIT 1"; 
$result = mysqli_query($conn1, $sql) or die('Error querying database.'); 
while ($row = mysqli_fetch_array($result)) { 
     echo '<p>' . $row['words'] . '</p>'; 
} 
mysqli_close($conn1); 

?> 

</div> 

<?php  
if (!isset($_SESSION["user_id"])) { 

} else { 
     require_once('form.php'); 
} 

?> 
+0

उस पेस्टबिन इंडेंटिंग के साथ क्या? क्या आप अपना कोड यहां पोस्ट कर सकते हैं? – elclanrs

+0

बस आपके लिए @elclanrs – JakeParis

+0

jQuery के लिए [आवधिक अपडेटर] (http://archive.plugins.jquery.com/project/periodicalupdater) प्लगइन का अनुसंधान करें। – nickb

उत्तर

9

आप इस प्रकार का पेज कुछ ताज़ा बिना कोई फ़ॉर्म सबमिट कर सकते हैं:

form.php:

<form action='profile.php' method='post' class='ajaxform'> 
<input type='text' name='txt' value='Test Text'> 
<input type='submit' value='submit'> 
</form> 

<div id='result'>Result comes here..</div> 

profile.php:

<?php 
     // All form data is in $_POST 

     // Now perform actions on form data here and 
     // create an result array something like this 
     $arr = array('result' => 'This is my result'); 
     echo json_encode($arr); 
?> 

jQuery:

jQuery(document).ready(function(){ 

    jQuery('.ajaxform').submit(function() { 

     $.ajax({ 
      url  : $(this).attr('action'), 
      type : $(this).attr('method'), 
      dataType: 'json', 
      data : $(this).serialize(), 
      success : function(data) { 
         // loop to set the result(value) 
         // in required div(key) 
         for(var id in data) { 
          jQuery('#' + id).html(data[id]); 
         } 
         } 
     }); 

     return false; 
    }); 

}); 

और आप एक विशेष समय के बाद पृष्ठ को ताज़ा करने के बिना एक ajax अनुरोध कॉल करना चाहते हैं, तो आप कोशिश कर सकते हैं कुछ इस तरह:

var timer, delay = 300000; 

timer = setInterval(function(){ 
    $.ajax({ 
     type : 'POST', 
     url  : 'profile.php', 
     dataType: 'json', 
     data : $('.ajaxform').serialize(), 
     success : function(data){ 
        for(var id in data) { 
        jQuery('#' + id).html(data[id]); 
        } 
       } 
    }); 
}, delay); 

और आप इस तरह किसी भी समय टाइमर बंद कर सकते हैं :

clearInterval(timer); 

आशा है कि यह आपको अपना कार्य पूरा करने के लिए एक दिशा देगा।

+5

(सरणी में अनुक्रमणिका) के लिए उपयोग करने के बजाय, आपको jQuery की $ .each() विधि का उपयोग करना चाहिए। मुझे विश्वास है कि यदि आप एक पुस्तकालय शामिल करते हैं, तो आपको इसका पूरा उपयोग करना चाहिए और मिश्रण और मिलान नहीं करना चाहिए। –

0

यह बहुत सरल है। तत्वों उदाहरण के लिए का उपयोग कर Jquery आप सीएसएस चयनकर्ताओं का उपयोग पहुंचने के लिए, निम्न नाम "foo" तुम क्या साथ एक इनपुट फ़ील्ड का मान प्राप्त करने के लिए:

var fooVal = $("input[name=foo]").val(); 

सर्वर से इस पर भेजने के लिए आप एक संलग्न करने के लिए कर रहे हैं घटना श्रोता (उदाहरण के लिए, क्लिक करें) सबमिट बटन करने के लिए/किसी भी अन्य तत्वों

var data = { varName : fooVal }; 
var url = "http://example.com"; 
var responseDataType = "json"; 
function parseResponse(JSON) 
{ 
    // your code handling server response here, it's called asynchronously, so you might want to add some indicator for the user, that your request is being processed 
} 

$("input[type=submit]").on('click', function(e){ 
    e.preventDefault(); 
    $(this).val("query processing"); 
    $.post(url,data, parseResponse, responseDataType); 
return false; 
}); 

आप लगातार अपडेट करना चाहते हैं, तो आप, बेशक, टाइमर या कुछ अन्य तर्क जोड़ सकते हैं। लेकिन मुझे आशा है कि आपको इस तरह के मामलों में आगे बढ़ने का विचार मिलेगा;

0

अपने प्रश्न के उत्तर का उत्तर देने के लिए, आप AJAX का उपयोग कर सकते हैं।

<html><head></head><body> 
<div id="feed"></div> 
<script type="text/javascript"> 
var refreshtime=10; 
function tc() 
{ 
asyncAjax("GET","upload.php",Math.random(),display,{}); 
setTimeout(tc,refreshtime); 
} 
function display(xhr,cdat) 
{ 
if(xhr.readyState==4 && xhr.status==200) 
{ 
    document.getElementById("feed").innerHTML=xhr.responseText; 
} 
} 
function asyncAjax(method,url,qs,callback,callbackData) 
{ 
    var xmlhttp=new XMLHttpRequest(); 
    //xmlhttp.cdat=callbackData; 
    if(method=="GET") 
    { 
     url+="?"+qs; 
    } 
    var cb=callback; 
    callback=function() 
    { 
     var xhr=xmlhttp; 
     //xhr.cdat=callbackData; 
     var cdat2=callbackData; 
     cb(xhr,cdat2); 
     return; 
    } 
    xmlhttp.open(method,url,true); 
    xmlhttp.onreadystatechange=callback; 
    if(method=="POST"){ 
      xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
      xmlhttp.send(qs); 
    } 
    else 
    { 
      xmlhttp.send(null); 
    } 
} 
tc(); 
</script> 
</body></html> 
संबंधित मुद्दे