X-Cart 4.6 Ошибка при отправке данных в новую таблицу в БД - PullRequest
0 голосов
/ 13 марта 2019

Привет. Я пытаюсь сохранить некоторые данные, когда пользователь достигает страницы подтверждения заказа, во вновь созданную таблицу в базе данных, и я застрял. Я знаю, что вызов AJAX связывается с файлом php, поскольку я могу просто console.log получить ответ (вывод) и получить то, что ожидается (т.е. echo 'hello') из файла php - так что все хорошо здесь.

Я также зарегистрировал новый псевдоним таблицы внутри файла init.php.

Вот код JS из файла order_message.tpl:

var newData = {
   "one":"test one",
   "two":"test two"
};

$.ajax({ url: '/newDir/newFile.php',
    data: {
        dataToSend: newData
    },
    type: 'post',
    success: function(output){
        console.log(output);
    },
    error: function(xhr, textStatus, error){
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
    }
});

Вот код PHP из файла root / newDir / newFile.php:

require '../init.php';
require '../include/func/func.db.php';

if(isset($_POST['dataToSend']) && !empty($_POST['dataToSend'])) {
   $ssData = json_decode($_POST['dataToSend']);
   myFunc($ssData);
} else {
   die( header('Location: ../404.html') );
}

function myFunc($dt){
   $toSaveData = array(
      'one' => $dt->one,
      'two' => $dt->two
   );
   func_array2insert ('my_new_table', $toSaveData);
}

Я вижу вызов AJAX в инструментах разработки, но он выдает следующие ошибки:

Я нигде в коде не ссылался на этот путь - который не существует - https://localhost/site/newDir/index.php,, поэтому я не уверен, что здесь происходит. Следующие 3 ошибки происходят от метода ошибок AJAX. А в базе данных данные не хранятся.

Если я закомментирую "require '../init.php';" Я не получаю ошибок, но вместо этого получаю длинную строку HTML-кода. Но по-прежнему нет данных, сохраненных в базе данных.

Кто-нибудь может понять, в чем проблема?

Большое спасибо.

1 Ответ

1 голос
/ 14 марта 2019

1) Переместите скрипт newFile.php в ту же папку, где находится скрипт stock cart.php.

2) Примените патч к файлу PHP

--- old.php 2019-03-14 15:19:10.162222071 +0400
+++ new.php 2019-03-14 15:25:41.160826722 +0400
@@ -1,5 +1,11 @@
-require '../init.php';
-require '../include/func/func.db.php';
+require __DIR__.'/top.inc.php';
+
+define('QUICK_START', true);
+define('SKIP_CHECK_REQUIREMENTS.PHP', true);
+define('USE_SIMPLE_SESSION_INTERFACE', true);
+define('USE_SIMPLE_DB_INTERFACE', true);
+
+require __DIR__.'/init.php';

 if(isset($_POST['dataToSend']) && !empty($_POST['dataToSend'])) {
    $ssData = json_decode($_POST['dataToSend']);

или загрузите новую версию здесь https://bt.x -cart.com / view.php? Id = 50556 # вложения

3) Изменить URL в строке

$.ajax({ url: '/newDir/newFile.php',

к новому. Используйте относительный или абсолютный путь.

...