JQuery Ajax ve php sınıfları

8 Cevap php

Ben php oop kullanmayı öğrenmek için çalışıyorum. Ben de jquery için oldukça yeni. Bir php sınıf yöntemi bir Ajax istek yapmak mümkün mü? Ben sadece şimdiye kadar bu amaç için özel bir dosyaya Ajax isteklerini yolladım ve ben gereken verileri döndürür.

8 Cevap

Short answer: Hayır

Long answer:

Ajax sayfayı terk etmeden, JavaScript kullanarak, tarayıcıdan bir HTTP isteği yapmak için sadece bir terimdir.

The only thing you can "call" is a URL.

Sen URL olsa ne dayalı bir şey yapmak için PHP yazabilirsiniz.

<?php
    if ($_POST['action'] == "delete") {
        delete();
    }
?>

Temel cevap hayır, ama bu kolayca yapılabilir.

Bir ajax çağrının kendisi sınıf yöntemleri arayamazsın. Bu yol sınıfını başlatılması ve ardından yöntemini çağırarak değil. Sadece PHP dosyası bir POST aracılığıyla sunucu üzerinde çalışmasına neden olabilir / GET X url çağırıyoruz.

Ne yapabilirim bir yönteme ajax go-between olarak hareket etmek başka bir dosya kullanmaktır. Yerine direkt olarak basit örnekler göstermek php dosyayı (örneğin update.php) çağrı başka deyişle, sen / GET kullandığı (vb, ajax yönlendirici, ajax sunucu, ne istersen onu aramak) bir go-arasında dosyasını çağırabilirsiniz Eğer ona geçmek için kullanmak ve ne değerleri istediklerini yöntem dışarı figuere göndermek POST parametreleri. Daha sonra bu dosyaya (sınıf başlatılması ve parametrelerle yöntemini çağırarak) den yöntemini çalıştırmak ve dosyası arayarak ajax bu dosyadan bu yöntemin sonuç verebilir.

Evet! Tüm 'no' yanıtları enough.You bu gibi yapabilirdik oldukça net değil:

$.post("processAction.php", { name: value }, myFunction);

Sonra processAction.php sınıf için kontrol ve fonksiyonları bulunuyor çalışır.

require("myClass.class.php");
session_start();

if (!isset($_SESSION['myClass'])){
   $_SESSION['myClass'] = new myClass();
}
$class = $_SESSION['myClass']; 

$data = $_POST['name'];
//run function
$class->functionName($data);

Bu sadece temel bir örnektir ve muhtemelen hatalar var, ama umarım genel bir fikir olsun. Bu doğrudan değil, ama sizin sınıfları tutmak için izin vermez.

Evet, tabii ki öyle, sadece sınıf yöntemi için $_GET, $_POST veya $_REQUEST Süper küresellerin biri tarafından yakalanan değerini geçerdi.

Eğer saf anlamda hayır, o hayır, yapamazsın, jQuery PHP sınıf yöntemi 'doğrudan çağırarak' bahsediyoruz eğer.

Ben elle bunu başarmak için nasıl bir anlayış, en azından tavsiye olsa da, her zaman sayfanızın javascript dolaylı erişilebilen bir php sınıf oluşturmak için olanak sağlar Xajax hangi kullanabilirsiniz.

Hayır, bu yöntemi yürütür, doğrudan asscess nesnesinin yöntemi olamaz, ancak dosyayı talep edebilirsiniz.

No, but you can map the call to the method. This is more or less what MVC helps you to do. So the call to www.mysite.com/User/Login can be easily mapped to the function Login of the class User.

Sen Codeigniter, örneğin, popüler bir MVC çözümdür bakmak isteyebilirsiniz.

Doğrudan ajax PHP komutları ve yön geçmek için bir yol oluşturmak istiyorsanız, bunu görebiliyordu tek yolu posta yoluyla kendisine gönderilen veya jQuery olsun kod üzerinde bir PHP eval kullanmaktır. Örneğin, biçimlendirme, aşağıdakileri yapın ...

<div id="myDiv">
Loading...
</div>

Sonra bir komut dosyası etiketi jQuery bir yere ekleyin:

myFunction(formdata) {
  data = "somekey: "+formdata;
  $("#myDiv").load("myScript.php",data);
}

Açıkçası bu komut post it Eğer çağıran bir textarea gibi bir şey gerekir ki javascript fonksiyonu bir bağlantı ya da böyle tıkladığınızda ...

<textarea id="myText"></textarea><br />
<a href="#" onclick="myFunction($('myText').attr('value'))" >Go!</a>

Ve sonra yapması gereken tüm bu şöyle bir php komut dosyası bazı verileri olsun ...

     <?php 
      if ($_POST["somekey"]) {
         eval($_POST["somekey"]);
      }
     ?>

Sonunda, her şeyin bir eval koymak için düzgün biçimlendirilmiş yapmak zorunda, bu yüzden tırnak izlemek, ve birisi olarak bu komut korumak, her şeyin o bok aşk için, Ayrıca içeri gidiyor geçerlidir yapacağız onlar ele geçirmiş, bazı ciddi zarar verebilir.