Передать массив из Jquery с JSON в PHP

0

эй, ребята, я читал некоторые другие записи и много старался, но все еще не работал на меня. когда я предупреждаю массив, я получаю все результаты на первом сайте, но после отправки данных на php я просто получаю пустой результат. есть идеи?

$(document).ready(function() {
$('#Btn').click(function() {
    var cats = [];
    $('#cats input:checked').each(function() {
        cats.push(this.value);
    });

    var st = JSON.stringify(cats);
   $.post('foo.php',{data:st},function(data){cats : cats});
   window.location = "foo.php";     
   }); 
});

Php

$data = json_decode($_POST['data']);

СПАСИБО

мой массив выглядит примерно так, когда я предупреждаю его о доме/квартире, саду/природе, спорте/хобби, это несколько результатов, которые пользователь может выбрать (из флажков). но когда я отправляю его на php, я ничего не получаю. когда я использую маркер запроса (расширение хром), он показывает мне что-то похожее на сырые данные кошек =% 5B% 22house + темы% 22% 2C% 22flat + items% 22% 5D

я также пробовал это way-- все еще нет результатов

$(document).ready(function() {
$('#Btn').click(function() {
    var cats = [];
    $('#cats input:checked').each(function() {
        cats.push(this.value);
        alert(cats);

    $.ajax({

    type: 'POST',
    url: "foo.php",
    data: {cats:  JSON.stringify(cats)},
    success: function(data){
     alert(data);
     }
   });
  }); 
   window.location = "foo.php";
  }); 
}); 

PHP:

$json = $_POST['cats'];
$json_string = stripslashes($json);
$data = json_decode($json_string, true);
echo "<pre>";
print_r($data);

это сводит меня с ума

  • 2
    Удалить window.location = "foo.php"; и тогда попробуй
  • 0
    спасибо за вашу помощь, но это, к сожалению, не работает
Теги:
arrays

4 ответа

1

Возьмите этот скрипт: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

И позвоните:

var myJsonString = JSON.stringify(yourArray);

так что теперь ваш код

$(document).ready(function() {
$('#Btn').click(function() {
    var cats = [];
    $('#cats input:checked').each(function() {
        cats.push(this.value);
    });
   var st = JSON.stringify(cats);
   $.post('foo.php',{data:st},function(data){cats : cats});
 //  window.location = "foo.php";    // comment this by this page redirect to this foo.php
   });
   }); 

//и если вы хотите toredirect, используйте ниже код

-------------------------------------------------
     $.post('foo.php',{data:st},function(data){
       window.location = "foo.php"; 
     });
---------------------------------------------------

Php

$data = json_decode($_POST['data']);
  • 0
    спасибо, но он все еще не работает, расширение chrome показывает мне, что эти данные получают отправленные данные =% 5B% 22другие + темы% 22% 2C% 22economy% 2Fpolitics% 22% 2C% 22детей% 2F + babys% 2Ffililie% 22% 2C% 22house% 2Fflats% 2Fgarden% 22% 5D, но я не могу ничего повторить, а с var_dump я просто получаю NUll
1
var ItemGroupMappingData = []

Or 

var ItemGroupMappingData =
{
"id" : 1,
"name" : "harsh jhaveri",
"email" : "[email protected]"
}

 $.ajax({
            url: 'url link',
            type: 'POST',
            dataType: "json",
            data: ItemGroupMappingData,
            success: function (e) {
// When server send response then it will be comes in as object in e. you can find data //with e.field name or table name
            },
            error: function (response) {
                //alert(' error come here ' + response);
                ExceptionHandler(response);
            }
        });
  • 0
    url: 'url link' Здесь вы можете передать свой URL как abc.aspx / saveata или какую-либо ссылку на вашу страницу и имя метода
0

Попробуй это :-

    $data = json_decode($_POST['data'], TRUE);
0

Я думаю, вы должны переместить "window.location =" в обратный вызов, что означает, что он должен подождать, пока сообщение не будет завершено, а затем перенаправить страницу.

$.post('foo.php', {
  data : st
}, function(data) {

   window.location = "foo.php";
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню