Ошибка X-Cart 4.6 при отправке данных в новую таблицу в БД

#php #mysql #ajax #x-cart

#php #mysql #ajax #x-cart

Вопрос:

Привет, я пытаюсь сохранить некоторые данные, когда пользователь переходит на страницу подтверждения заказа, во вновь созданную таблицу в базе данных, и я застрял. Я знаю, что вызов AJAX взаимодействует с файлом php, поскольку я могу просто консоли.запишите ответ (output), и я получу то, что ожидалось (т. Е.: 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']) amp;amp; !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. И в базе данных данные не сохраняются.

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

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

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

Ответ №1:

1) Переместите newFile.php скрипт в ту же папку, где хранятся 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']) amp;amp; !empty($_POST['dataToSend'])) {
    $ssData = json_decode($_POST['dataToSend']);
  

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

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

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

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

Комментарии:

1. Спасибо, Ильдар. Можете ли вы сказать мне, что означают --- , - и в начале строк. Если я оставлю этот код как есть, я получу синтаксическую ошибку с самого начала - .

2. Ильдар, зачем мне исправлять это, если это совершенно новый файл? Извините, это то, чего я никогда раньше не делал, поэтому я немного запутался в процессе.

3. Я загрузил newFile.php файл здесь bt.x-cart.com/view.php?id=50556#attachments