Soy completamente nuevo en ajax, así que no estoy seguro de si lo estoy haciendo correctamente. Estoy tratando de pasar una matriz de Javascript a un archivo PHP. Y si abre con éxito el archivo PHP y muestra la matriz. El error que recibo después de abrir el archivo es:
undefined $productList Mientras tanto, si inspecciono y miro en la pestaña de red, el ajax se envía con éxito y la respuesta también está bien (puedo ver el contenido de la matriz), pero cuando intento abrir el archivo me arroja errores. Entonces, mi pregunta es ¿cómo abro un archivo donde envío mis datos con ajax?
Formación:
array(6) { ["name"]=> string(28) "Inuyasha by rumiko takahashi" ["image"]=> string(35) "https://via.placeholder.com/195x280" ["id"]=> string(1) "5" ["count"]=> string(1) "1" ["price"]=> string(2) "12" ["basePrice"]=> string(2) "12" }el ajax:
function passArray(){ $.ajax({ type: "POST", url: "assets/js/test.php", data: {productsInCart:productsInCart}, error: function(){ alert('something went wrong..'); } }); //window.open("assets/js/test.php", "_self"); //how to open the file where the data is sent? }El código PHP:
if($_POST){ $productlist = $_POST; }else{ $productlist = ""; echo "doesnt work "; die(); } //var_dump($productlist); foreach($productlist as $number){ foreach ($number as $cat => $prop) { echo $cat; echo $prop; } } $html .= "</table>";Está realizando dos solicitudes diferentes a la misma URL.
$.ajax está realizando una solicitud POST.window.open , está realizando una solicitud GET.El programa PHP se ejecutará de forma independiente para cada solicitud. Los datos que publica en la primera solicitud no estarán disponibles en la segunda solicitud.
Si desea mostrar una página que obtiene como resultado de enviar algunos datos, use:
<form action="..." method="post" target="_self">No use Ajax (que es para realizar una solicitud HTTP sin salir de la página actual ; generalmente, tomaría los datos en la respuesta a la solicitud Ajax y usaría la manipulación DOM para agregarlos a la página actual).