(Bir güncelleme düğmesi gibi) başka bir php komut arka planda bir php komut dosyasını çalıştırmak için nasıl

7 Cevap

Ben diyelim ki o Geçerli sayfayı güncellemek sonra (hiçbir eko ya da ya da diğer çıkışı, başarı ya da başarısız olan) komut x1.php söyleyebilirim çalıştırmak hangi bir "update" tuşuna (basıldığında nasıl bir php script çalışan hakkında gitmek istiyorum Ben güncelleştirme bölümü ajax ile yapılabilir biliyorum ama) nasıl ve ne ben x1.php komut arka planda çalıştırmak için almak ve bittiğinde ajax güncelleştirmeyi tetikleyecek im emin değil.

Doğru yönde herhangi bir işaretçiler büyük :) olurdu

7 Cevap

Böyle deneyebilirsiniz:

<input type="button" onclick="go();" value= "Update" />


function go()
{
    $.ajax(
        {
               type: "POST",
               url: "script x1.php",
               data: data, // data to send to above script page if any
               cache: false,

               success: function(response)
               {
                // update code for your page
               }
         });
}

Bu arka planda komut dosyasını çalıştırın ve sonra da sayfanın içeriğini güncelleyebilirsiniz. Siz ihtiyaçlarınıza göre kodunu değiştirmek isteyebilirsiniz.

which has no echo's or or other output, successes or failed

Aksi i sona erdi when and how komut dosyası bulamıyor korkuyorum bu çalışması bittikten olduğunu bilmek mümkün yukarıdaki komut için geri gönderilen bazı yanıtı olmalıdır.

Note: Burada JQuery kullanma.

Ajax burada% 100 doğru cevaptır. Sen x1.php bir Ajax isteği yapan bir HTML sayfası oluşturmak. Bu döner ne bağlı olarak, Ajax success yöntemi sayfasını günceller.

Kesin olmak gerekirse, size JavaScript Ajax yöntemini kullanarak request yapmak, ve JavaScript kullanarak sayfayı güncellemek.

İşte bazı örnekler ve belgeler bulunuyor:

AJAX "doğru" yönü. Sen x1.php diyoruz ve bu geçerli sayfayı güncellemek için çıkış bulunuyor kullanmalısınız. Sitenize javascript olmadan çalışması gerektiği konusunda dikkat edin.

Ne aslında için soruyorsun AJAX tüm hakkında tam olarak ne olduğunu. Sadece o düğmeye bir olay gözlemci bağlamak ve PHP script çalıştırmak, ihtiyacınız ne olursa olsun iade ediyorum. Tam sözdizimi, bir JavaScript lib kullanarak olup olmadığını sadece bağlıdır (jQuery / Prototype vb)

Ben sordum bir soruya bakabilirsiniz. http://stackoverflow.com/questions/2171003/return-value-to-browser-but-still-process-in-php.

Istek yapmak için ajax kullanmak, ancak PHP hala arka planda işleme olsa bile bir değer döndürmek için olsun.

Burada çeşitli mekanizmalar istihdam edebilirsiniz. Sorunuza bakılırsa, ben bunun olağan bir ajax isteği beklenmeyecek "Update" süreci biraz uzun sürebilir bekleniyor alabilir?

  • Seçenek 1

    Güncelleştirme komut AJAX güncelleme durumu için yoklamak, sonra bir veritabanına durumunu yazmak olun

  • Seçenek 2

    O çalışıyor ise güncelleme script lockfile oluşturmak yapmak ve lockfile silmek Bittikten sonra, kilit dosyasının yerini ve exitance yoklamak için AJAX kullanabilirsiniz

  • Seçenek 3

    Güncelleme programı hızla güncellenmesi bitirmek bekleniyor ise, sadece bir 'başarı' veya 'hata' durum mesajı yankı ve Sarfraz önerilen başarılı AJAX isteği üzerine işlemek.

Just include a .php that has as SQL-query something like this: mysql_query("SELECT * FROM table WHERE date < DATE_SUB(NOW(), INTERVAL 8 DAY)");

Bu ifade doğrudur ise sadece idam edilecek. :)

Söyledi. Php, herhangi bir yankı bulunuyor koymak değil emin olun. Bu 'otomatik olarak' çalışacak ve kullanıcı bir şey fark etmez.