Отправить массив на php через AJAX - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь отправить массив JS в файл php через ajax.

JS-код:

$('#basket').on('click',function(){

    $.ajax({
        type: "GET",
        url: "basket.php",
        data: {vektor: itemNameArray},
        success: function(){

            window.location.href ="basket.php";
            console.log(itemNameArray);

        }
    });

});

php-код:

<?php
    echo("<script>console.log('PHP: test 1');</script>");
    if(isset($_GET['vektor'])){
        echo("<script>console.log('PHP: test 2');</script>");
        $vektor = $_post['vektor'];
        echo("<script>console.log('PHP: ".$vektor."');</script>");
    }

Но, похоже, мой ключ с вектором не работает.Я получаю в лог мой массив и первый эхо с тестом 1, но не второй.Мне нужно отправить массив в файл php, чтобы создать HTML-код.Это потому, что мне нужно открыть "basket.php", чтобы увидеть результат.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Привет, вы можете сделать это следующим образом:

ваш php скрипт:

if (isset($_POST["action"])) {
   $action = $_POST["action"];
   switch ($action) {
    case 'SLC':
     if (isset($_POST["id"])) {
       $id = $_POST["id"];
       if (is_int($id)) {
       $query = "select * from alumni_users where userId = '$id' ";
        $update = mysqli_query($mysqli, $query);
         $response = array();
         while($row = mysqli_fetch_array($update)){
           .......fill your response here

         }
         echo json_encode($response);
        }
       }
      break;

    }
 }
Where action is a command you want to do SLC, UPD, DEL etc and id is a parameter

then in your ajax:



function getdetails() {
 var value = $('#userId').val(); // value can be your array ! note: if you send a object json_encode(json_decode(,MyObj,true))
                         return $.ajax({
                              type: "POST",
                              url: "getInfo.php",
                              data: {action: "SLC",id: value } 
                          })
                      }
                      call it like this:



   getdetails().done(function(response){
                  var data=JSON.parse(response);
                  if (data != null) {
                  //do somthing with your Data
                  }
                  })
0 голосов
/ 05 марта 2019

Я изменил GET и опубликовал в POST.Вы перепутали с POST и GET, это первая серьезная ошибка.

Но похоже, что мой get с ключом вектора не работает.Я получаю в LOG мой массив и первый эхо с тестом 1, но не второй (пост не POST) .Мне нужно отправить массив в файл php для создания HTML-кода. (Для данных этого типа POST предпочтительнее) Это потому, что мне нужно открыть "basket.php", чтобы увидеть результат.

$('#basket').on('click',function(){

            $.ajax({
                type: "POST",
                url: "basket.php",
                data: {vektor: itemNameArray},
                success: function(){

                    //window.location.href ="basket.php";
                    console.log(itemNameArray);

                }
            });

        });

php код:

<?php
echo("<script>console.log('PHP: test 1');</script>");
  if(isset($_POST['vektor'])){
     echo("<script>console.log('PHP: test 2');</script>");
     $vektor = $_POST['vektor'];
     echo("<script>console.log('PHP: ".$vektor."');</script>");
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...