У меня есть другая перспектива ответить на это.
При работе на разных уровнях, например, в приложении MVC, контроллеру нужны службы для вызова бизнес-операций. В таких сценариях контейнер инжекции зависимостей может использоваться для инициализации служб, чтобы исключить исключение NullReferenceException. Это означает, что вам не нужно беспокоиться о проверке нулевого значения и просто вызвать службы с контроллера, как будто они всегда будут доступны (и инициализированы) как одиночный или прототип.
public class MyController
{
private ServiceA serviceA;
private ServiceB serviceB;
public MyController(ServiceA serviceA, ServiceB serviceB)
{
this.serviceA = serviceA;
this.serviceB = serviceB;
}
public void MyMethod()
{
// We don't need to check null because the dependency injection container
// injects it, provided you took care of bootstrapping it.
var someObject = serviceA.DoThis();
}
}
Я понял это. Необходимо использовать эхо в PHP вместо возврата.
<?php
$output = some_function();
echo $output;
?>
И jQ:
success: function(data) {
doSomething(data);
}
Да, то, как вы это делаете, совершенно законно. Чтобы получить доступ к этим данным на стороне клиента, отредактируйте свою функцию успеха, чтобы принять параметр: data.
$.ajax({
type: "POST",
url: "somescript.php",
datatype: "html",
data: dataString,
success: function(data) {
doSomething(data);
}
});
Это аргумент, переданный вашей функции успеха:
$.ajax({
type: "POST",
url: "somescript.php",
datatype: "html",
data: dataString,
success: function(data) {
alert(data);
}
});
Полная подпись - success(data, textStatus, XMLHttpRequest)
, но вы можете использовать только первый аргумент, если это простая строка возвращается. Как всегда, см. Документы для полного объяснения :)
$output
- массив, как вы вернете этот массив? – Arun Kumar 8 February 2018 в 11:04$output
- массив, то используйтеjson_encode
так:echo json_encode($output)
– Máxima Alekz 20 April 2018 в 18:54