У меня есть 2d массив в javascript, в который мне нужно вставить базу данных, поэтому мне нужно отправить его в php через ajax.
Я пробовал разные решения по схожим проблемам в stackoverflow, я смог решить мою ошибку через них, но не могу получить правильные данные в php-файле.
У меня есть код JavaScript вкоторый я взял массив Arr_Records = [];этот массив заполняется нажатием кнопки «Добавить» из другого массива (var_ItemDetails). (Это работает хорошо, так как данные отлично устанавливаются в Arr_Records).
У меня есть другая функция кнопки OnCheckOutClick, определенная в javascript, откуда мне нужно вставить записи в Arr_Records в базу данных mysql, поэтому я пытаюсь отправить ее с помощью ajaxвставить файл .php, но не смог успешно получить данные Arr_Records там.
<script>
var Arr_Records = [];
var indx = 0;
// This function is setting records in Arr_Records from another array. Its working fine (indx was initialized with 0).
function OnAddItemClick()
{
Arr_Records.push([
var_ItemDetails.Id,
var_ItemDetails.Item,
var_ItemDetails.CategoryId,
var_ItemDetails.Category,
var_ItemDetails.Price,
var_ItemDetails.AvbQty,
var_ItemDetails.PurQty,
var_ItemDetails.RemQty,
var_ItemDetails.TotalPrice
]);
alert(Arr_Records[indx][1]); // only to confirm insertion
indx++;
OnClearClick(); // to clear input fields.
}
function OnCheckOutClick()
{
var ajax = new XMLHttpRequest();
var method = "POST";
var url = "insertdata.php";
var async = true;
ajax.open(method, url, async);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send(JSON.stringify(Arr_Records));
ajax.onreadystatechange = function()
{
if(this.readyState == 4 && this.status == 200)
{
var response_Data = ajax.responseText;
alert(response_Data);
}
}
}
</script>
// **** insertdata.php ****
<?php
$arrRecords = filter_input_array(INPUT_POST, 'Arr_Records');
$arrRecords = json_decode($arrRecords);
if ( $arrRecords != null )
echo $arrRecords[0][1];
else
echo "No Data Found"; // this line executes
?>
Я хочу получить правильный массив в insertdata.php, чтобы я мог получить доступ ко всем элементам, которые я установил из OnAddClick, как itemid, предмет, категория и т. д. для вставки в mysql.