У меня есть страница php, send.php, которая успешно выводит массив при переходе на эту страницу. Однако, когда я пытаюсь использовать ajax на index.php для доступа к этой странице, нет ответа.
На эту страницу я захожу
send.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$json = array(
"test" => null,
"success" => null,
"urls" => null,
);
$json = array("hi" => null, "success" => null);
$class = new test();
$json["success"] = true;
$json["hi"] = $class->_array;
echo json_encode($json);class test{
public $_array = array();
public $urlPreArray;
public $sensoredArray;
function __construct(){
require_once('./mysqlDB.php'); //this causes nothing to be sent back
$cookieString = $_COOKIE['crUrl'];
$this->_array = explode(",", $cookieString);
}
}
Это моя страница указателя
<html>
<head>
<script src="jquery1.11.js"></script>
<meta charset="utf-8">
<script>
function load(){
$.get("./php/send.php",
{
action:"displayUrlsNotes"},
function(data, status){
console.log(status);
console.log(data);
}, "json");
console.log("end");
}
</script>
</head>
<body>
<button onclick='load();'>Click Me</button>
</body>
</html>
Если я захожу в send.php в моем браузере, он работает, и массив печатается, но когда я захожу в index.php и нажимаю кнопку, ajax-запрос выполняется успешно, но ничего не отправляется обратно.
Это работает, если я закомментирую require_once (‘./ mysqlDB.php’); в send.php
Я новичок в использовании классов в php и не уверен, что именно мне нужно Google, чтобы найти ответ.
Я понял. Проблема была в том, что у меня был HTML-код на моей странице mysqlDB.php. Спасибо, что сказали мне изучить мою файловую структуру.
Я подозреваю, что это связано с вашей структурой папок.
Вы использовали относительный путь для включения файла базы данных. Лучше всего использовать полный путь, тогда вы можете без проблем вызывать скрипт из любого контекста.
Я хотел бы предложить что-то вроде:
require_once($_SERVER['DOCUMENT_ROOT'].'/mysqlDB.php');
или вы можете определить корень как константу в общем конфигурационном файле:
define('ROOT_DIR', '/home/mysite/public_html');
require_once(ROOT_DIR.'/mysqlDB.php');