Nasıl JavaScript Prototip AJAX isteği içinde çalışmak alabilirsiniz

1 Cevap php

Ben Prototip / AJAX kullanarak harici bir PHP sayfası HTML / Javascript çekmeye çalışıyorum, ve HTML ince işler, ancak Javascript AJAX isteği sonra çalışmaz.

Sayfa verileri yükler ederken ben de bir yükleme çubuğu gösteren kulüpler ve bu bölümü gayet iyi çalışıyor. Benim Symfony PHP + Prototip kod aşağıda. Bana doğru yönde koyabilecek herhangi bir tavsiye büyük mutluluk duyacağız!

<?php echo javascript_tag(
      remote_function(array(
      'update'  => 'getinfo',
      'method'    => 'get',
      'script'     => true,
      'url'     => 'event/load?id='.$sf_params->get('id'),
      'loading'    => "Element.show('loading')",
     'complete'   => "Element.hide('loading')",
))
 ) ?>

1 Cevap

"The Definitive Guide to Symfony" Gönderen:

Eğer uzak yanıt için komut dosyası yürütülmesine olanak bile oluşturulan kodu kontrol etmek için bir araç kullanmak eğer, aslında, uzaktan kod komut görmezsiniz. Scripts çalışacaktır ancak kod görünmez. Tuhaf olsa da, bu davranış gayet normal.

I remote_function Prototype'ın Ajax.Updater kullanılarak uygulanan bu olduğuna inanıyorum; remote_function s evalScripts seçeneğini 's script seçeneğini Ajax.Updater olur'. Ajax.Updater için dokümanlar bu konuda şöyle demektedir:

Eğer evalScripts kullanıyorsanız: true, herhangi bir blok değerlendirilecektir. Bu sayfada yer alacak anlamına gelmez: onlar değil. Onların içerik sadece yerli eval () işlevi geçilecek. [... Bir fonksiyonu tanımlamak için] aşağıdaki sözdizimini kullanmanız gerekir:

// This kind of script WILL work if processed by Ajax.Updater:
coolFunc = function() {
    // Amazing stuff!
}

Bu bir kapsam belirleme sorunu yaşıyorsanız göstermektedir. Ben event.php tarafından javascript çıkışını görmeden söyleyebilirim olduğunca fazla bulunuyor.