2013-11-13 6 views
0

эй, ребята, я читал некоторые другие сообщения и много старался, но все еще не работал на меня. , когда я предупреждаю массив, я получаю все результаты на первом сайте, но после отправки данных на php я просто получаю пустой результат. есть идеи?Pass Array от JQuery с JSON до 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']); 

THANK YOUU

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

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

$(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"; и затем попробуйте – Rohit

+0

благодарю вас за помощь, но это не работает, к сожалению, –

ответ

0

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

$data = json_decode($_POST['data'], TRUE); 
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 
    }); 
    }); 

// и если хотите, то uou toredirect использовать ниже код

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

Php

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

спасибо, но он все еще не работает. Расширение chrome показывает мне, что эти данные передаются в данные =% 5B% 22other + темы% 22% 2C% 22economy% 2Fpolitics% 22% 2C% 22children% 2F + babys% 2Ffamilie% 22% 2C% 22house% 2Fflats% 2Fgarden% 22% 5D, но я не могу что-либо повторять, и с var_dump я просто получаю NUll –

0

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

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

    window.location = "foo.php"; 
}); 
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/savedata или независимо от ссылки на вашу страницу и имя метода – harshboss

Смежные вопросы