Nasıl javascript kullanarak bir PHP sayfası yoklamak?

4 Cevap php

Ben bu basit bir cevabı vardır eminim, ama ben şu anda boş bir çizim var, herhangi bir öneriniz işaretçiler olurdu.

I have a php page [ lets say counter.php] which when called [loaded/viewed] it connects to a db and increments a counter. I also have another page that has a selects box, I want to add a .js function on the onchange event that will call/poll the counter.php file thus incrementing the counter.

. Js gelen ve dosya / sayfa aramak veya yoklamak için bir yolu var mı, ben bu bir HttpRequest üzerinden yapılabilir ama bir şey geri dönmek veya sayfada herhangi bir şey değiştirmek istemiyorum gibi bu overkill gibi görünüyor biliyorum.

şimdiden teşekkürler

. K


Cevaplar için teşekkürler, ama belki, belli değildi ben bir şey dönmek ya da sayfada herhangi bir şey değiştirmek istemiyorum, ben sadece sayfayı yoklamak istiyorum. I / iframe ajax başvurmadan olmadan bunu yapmak için basit bir yol arıyorum.

Burada ne bir örnek:

counter.php

<?php
// connect to db
// increment counter val
// DOES NOT RETURN ANYTHING
?>

index.html

<script>
increment()
{
    // I Just need to poll the page [counter.php] here,
    // thus incrementing the counter, ie no change on this page !
};
</script>

<select onchange="increment();"> ... </select>

4 Cevap

Ben size ajax uygulamak istediğiniz anlamına düşünüyorum:

http://en.wikipedia.org/wiki/Ajax_ (programlama)

Ben böyle bir şey elde etmek için aklınıza gelebilecek hızlı rota:

<?php   
echo '1';
?>

İndir jQuery

Ve belgenizin baş gibi bir şey yapın:

<script>
$(document).ready(function() {
    $('#idOfaDiv').load('counter.php');//'1' will be injected into div id="idOfaDiv"
});
</script>

Bkz Ajax/load

Ayrıca, AJAX hakkında tartışma bol bu sitede var. AJAX bir kaç arama denemenizi öneririz. Ve yapmanız için çalışıyoruz ne ulaşmak için pek çok yolu vardır - bu ne önerdi sadece biri olduğunu dikkate almak önemlidir.

Ayrıca DOM üzerinden bir script etiketini oluşturmak ve HTML ekleyebilirsiniz

addScript = function(src) {
    	var head = document.getElementsByTagName('head')[0];
    	var script = document.createElement('script');
    	script.type = 'text/javascript';
    	script.src = src;
    	head.appendChild(script);
    }

addScript('counter.php');

Lütfen PHP Javascript gibi talimat dönmek.

örneğin:

<?php 

header('content-type: text/javascript');

?>

document.getElementById('mydiv_id').innerHTML = '1';

PrototypeJS Sen tam olarak ne istiyorsun ki çok kullanışlı Ajax ve PeriodicalExecuter nesneleri sağlar.

Bu örnekte, Ajax talep her 10 saniyede bir yapılır. Ayrıca kolayca onchange sizin <select> elemanın gelen Ajax arama yapabilir.

function increment() {
  new Ajax.Request( '/content.php', {
        method:  'get',
        parameters:  {},
        onSuccess:  function(response, jsonHeader) {
            //If you need to do something with a response, doe it here
        },
        onFailure:  function() {
            alert('Request failed because an error ocurred.');
        }
    });
}

new PeridodicalExecuter(function(pe) {
    //Call pe.stop() to stop the timer;
     increment();    
}, 10);

XMLHttpRequest gerçekten zor değil, ama bir formu yapabileceğiniz başka bir şey hedef olarak bir iframe kullanarak gönderin.

<form action="increment_counter.php" target="my-iframe"...

Sadece gizli iframe tutmak ve ince olmalıdır. Teknik olarak, hedef niteliği önerilmiyor, ancak HTML5 bu yüzden çok endişe olmaz.

Tabii ki, XMLHttpRequest gerçekten bir js lib kullanarak konum, özellikle eğer, o kötü değil.

Sayfa hedef özniteliği kullanarak yenilemek kalmaması GÜNCELLEME sadece iframe amacı getiriyi elde ya da kullanmak için değil, açıklığa kavuşturmak için, amacı budur.