JQuery Ajax и PHP классы

Я пытаюсь узнать, как использовать oop в php. Я также довольно новичок в jquery. Можно ли сделать Ajax-запрос к классу php? Я только когда-либо отправлял запросы Ajax в файл специально для этой цели, и он возвращает нужные мне данные.

Ответы на вопрос(9)

$_GET, $_POST или же$_REQUEST суперглобальные к вашему методу класса.

Если вы "говорите о", непосредственно ссылаясь на " метод класса PHP из jQuery, то нет, вы не можете, нет, в чистом смысле.

Решение Вопроса

Long answer:

Ajax - это просто термин для отправки HTTP-запроса из браузера с использованием JavaScript, не покидая страницы.

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

Вы можете написать свой PHP, чтобы сделать что-то, основываясь на том, что URL.

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

*******************JS File test-----**************************
function actionTest(){
	$..php",
		data:{"ac":"test","pp":"YHOOOOOOOO"}
	}).done(function(data){
		$("#show").html(data);
	});
}
*******************-----PHP file test2.php-----**************************
<?php
$ac = $_POST['ac'];
$pp = $_POST['pp'];
if($ac =="test"){
	$obj = new Tt();
	$obj->test($pp);
}

class Tt
{
	
	function __construct()
	{
		
	}
	function test($aa){		
		echo "This is test function!".$aa;
	}
}
?>
*******************----HTML file------**************************
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>TESTTTTTTT</title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
    <script src="js/jquery-2.1.4.js" type="text/javascript"></script>
    <script src="js/test.js" type="text/javascript"></script>     
    <link rel="shortcut icon" href="img/icons/icon.png"/>
</head>
<body onload="actionTest()">
<div id="show"></div>
</body>
</html>

no& APOS; ответы не достаточно ясны. Вы могли бы сделать это так:

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

Затем processAction.php проверит ваш класс и запустит его функции.

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);

Это просто базовый пример и, возможно, есть ошибки, но, надеюсь, вы получите общее представление. Он не прямой, но позволяет вам продолжать занятия.

MVC поможет вам сделать. Таким образом, вызов www.mysite.com/User/Login может быть легко сопоставлен с функцией Login класса User.

Вы можете посмотреть наCodeigniterНапример, это популярное решение MVC.

как этого добиться вручную, вы всегда можете использоватьXajax который позволяет вам создать класс php, который косвенно доступен из javascript вашей страницы.

рез ajax, я смог бы увидеть это только с помощью PHP eval для кода, который отправляется ему по почте или попадает в jQuery. Например, в вашей разметке сделайте следующее ...

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

Затем добавьте jQuery где-нибудь в тег скрипта:

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

Очевидно, что для публикации этого сценария вам понадобится что-то вроде текстовой области, которая вызывает эту функцию javascript, когда вы нажимаете на ссылку или что-то подобное ...

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

И тогда все, что вам нужно сделать, это получить некоторые данные в PHP-скрипт, который выглядит примерно так ...

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

В конце вы должны будете убедиться, что все отформатировано правильно, чтобы поместить их в eval, так что следите за своими цитатами и убедитесь, что все правильно, что происходит. Кроме того, ради дерьма, защитите этот скрипт как кто-то может причинить серьезный вред, если он возьмется за него.

 09 июл. 2009 г., 19:55
Если вы хотите выполнить что-то из класса, который уже был создан в этом скрипте, у вас будет к нему доступ. Кроме того, я должен проверить это, но я думаю, что вы можете создать экземпляр класса изнутри eval, но он, вероятно, не будет работать так, как задумано.

Сам вызов ajax не может вызывать методы класса. У него нет способа инициации класса и последующего вызова метода. Это может привести к запуску PHP-файла на сервере только через вызов POST / GET для X-URL.

То, что вы можете сделать, это использовать другой файл, чтобы выполнять роль посредника между ajax и методом. Другими словами, вместо прямого вызова php-файла (например, update.php), как показывают простые примеры, вы можете вызвать промежуточный файл (называйте его как хотите, ajax-сервер, ajax router и т. Д.), Который использует GET / Параметры POST, которые вы отправляете, выясняют, какой метод вы хотите использовать и какие значения передаете ему. Затем вы можете запустить метод из этого файла (инициировать класс и вызвать метод с параметрами) и вернуть результаты этого метода из этого файла в скрипт вызова ajax.

вы не можете напрямую заменить метод объекта, но вы можете запросить файл, который выполняет этот метод.

 09 июл. 2009 г., 12:29
Не могли бы вы объяснить это мне? Если я использую функцию jquery $ .post (), какой будет синтаксис?
 09 июл. 2009 г., 14:50
На самом деле вы запрашиваете файл, например, example.php и каким-то образом указываете, какой метод вы хотите получить (используя данные постов). В example.php вы читаете этот индикатор и решаете, какой метод объекта вы будете вызывать. После этого просто выведите результат.

Ваш ответ на вопрос