У меня есть массив, определенный в JS, и я отправляю его с помощью AJAX в файл PHP с именем aux.php.Что мне нужно, так это то, что этот массив можно увидеть и манипулировать в функции внутри класса другого php-файла с именем payment.php.
Я передал им весь код, чтобы они могли понять, что я делаю:
HTML с формой:
<form method="post" onsubmit="return validateForm()" id="formCash">
<input type="text" class="form-control" id="registroUsuario" name="registroUsuario" placeholder="Nombre Completo" maxlength="26" required>
<input type="text" class="form-control" id="registroDireccion" name="registroDireccion" placeholder="Dirección de envío con altura de calle" required>
<input type="text" class="form-control" id="registroCalendario" name="registroCalendario" placeholder="Día de envío" required>
<input type="email" class="form-control" id="registroEmail" name="registroEmail" placeholder="Correo Electrónico" maxlength="32" required>
<input type="text" class="form-control" id="registroTelefono" name="registroTelefono" placeholder="Teléfono de contacto" maxlength="16" onkeypress="return isNumber(event)" required>
<?php
$payments = new Payments();
$payments -> ctrCash();
?>
<input type="submit" class="btn btn-block btn-lg btn-default backColor btnPagar" id="btnPagar" value="CONFIRMAR PEDIDO">
</form>
Функция в Javascript, которая содержит массив и отправляет его с помощью AJAX в aux.php:
$("#btnPagar").click(function(){
var total = $(".valorTotalCompra").html();
var envio = $(".valorTotalEnvio").html();
var subtotal = $(".valorSubtotal").html();
var titulo = $(".valorTitulo");
var cantidad = $(".valorCantidad");
var valorItem = $(".valorItem");
var idProducto = $('.cuerpoCarrito button, .comprarAhora button');
var tituloArray = [];
var cantidadArray = [];
var valorItemArray = [];
var idProductoArray = [];
for(var i = 0; i < (titulo.length/2); i++){
tituloArray[i] = $(titulo[i]).html();
cantidadArray[i] = $(cantidad[i]).html();
valorItemArray[i] = $(valorItem[i]).html();
idProductoArray[i] = $(idProducto[i]).attr("idProducto");
}
var finalArray = [];
for(var i = 0; i < (tituloArray.length); i++){
finalArray[i] = {titulo : tituloArray[i], cantidad : cantidadArray[i], valorItem : valorItemArray[i], idProducto : idProductoArray[i]}
}
completeArray = JSON.stringify(finalArray);
$.ajax({
type: "POST",
url: "aux.php",
data: { completeArray : completeArray },
success: function(data) {
console.log(data);
}
});
})
Файл aux.php, в который массив поступает правильно и var_dump дает мне правильный результат:
if(isset($_POST['completeArray'])){
$completeArray = json_decode($_POST['completeArray'], true);
var_dump("The array is", $completeArray);
Класс и функция файла платежей.php, который проверяетполя серверной формы , и здесь мне нужно иметь возможность манипулировать массивом :
class Payments {
public function ctrCash(){
if(isset($_POST["registroUsuario"])){
if(preg_match('/^[a-zA-ZñÑáéíóúÁÉÍÓÚ ]+$/', $_POST["registroUsuario"]) &&
preg_match('/^([0-2][0-9]|3[0-1])(\/|-)(0[1-9]|1[0-2])\2(\d{4})$/', $_POST["registroCalendario"]) &&
preg_match('/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/', $_POST["registroEmail"]) &&
preg_match('/^(?:\D*\d){2,4}\D*$/', $_POST["registroDireccion"]) &&
preg_match('/^[0-9]{7,12}$/', $_POST["registroTelefono"])) {
//include ('aux.php');
}