2013-10-08 3 views
0

Мне нужна помощь, я не могу найти решение. У меня есть массив javascript, который мне нужно передать скрипту php, который сохранит все значения массива (max 3) в переменных сеанса. Мой Javascript массив приходит из String.split вызова:Массив для php и извлечения

var indentificators = id.split("_"); 

Что мне нужно некоторая помощь о том, как сделать вызов Ajax, а затем, как получить каждый элемент массива по одному.

Моя основная проблема - это формат, который необходимо отправить этим данным и как его получить.

PD: Я бы опубликовал свой текущий код вызова ajax, но я думаю, что это не поможет, все испортилось.

+0

Даже если это испорчено, мы будем признательны, что вы публикуете Javascript, а также код Php, чтобы мы могли заглянуть в него. –

+0

Почему бы не закрыть эти вопросы, как дубликаты ?. –

ответ

0
var array = id.split("_"); 
data = JSON.stringify(array); 
var url = 'you/url'  
$.ajax({ 
    type: "POST", 
    url: url, 
    data: {array: data}, 
}); 
1

JSON - ваш ответ здесь. Используете ли вы библиотеку javascript, такую ​​как jQuery или MooTools?

JQuery: How do I encode a javascript object as JSON?

url = 'target.php'; 
data = {identificators: JSON.stringify(identificators) }; 
jQuery.post(url, data, , function(response) { 
     //response handling 
}); 

MooTools:

url = 'target.php';  
data = { identificators: JSON.encode(identificators) }; 

МЕТОДИЧЕСКИЕ пост (Асинхронный) в MooTools: http://mootools.net/docs/core/Request/Request

В PHP:

$phpArray = json_decode($_POST['identificators']/$_POST['identificators']); 
0

Вы можете форматировать свой ответ отправить как JSON строки

Например:

Javascript массив:

var indentificators = id.split("_"); // [0] => 'Stack', [1] => 'Overflow' 

так что вы можете сделать это:

var response_to_send = "{\"var1\":" + indentificators[0] + ", \"var2\": " + indentificators[1] + "}"; 

здесь вы получите эта строка в вашем php-скрипте (предположим, что запрос ajax успешный, и значение строки в POST равно «значениям»):

$values = json_decode($_POST['values']) 
echo $values[0]; // This print 'Stack' echo $values[1]; // This print 'Overflow' 

Я надеюсь, что это то, что ваши поиски

0

Finaly Я решил это:

var identificadors = id.split("_"); 

$.ajax({ 
    url: './phpScripts/comunicador.php?method=sessioList', 
    type: "POST", 
    data: ({data: identificadors}), 
    success: function(){ 
     alert('cool'); 
    } 
}); 

Тогда на моей странице PHP:

function sessioList() { 

    $data = $_POST['data']; 

    $_SESSION['list_id_product'] = $data[0]; 
    $_SESSION['list_id_tarifa']  = $data[1]; 
    $_SESSION['list_index']   = $data[2];  

} 

Как я уже сказал, моя главная проблема был формат для отправки данных и как их получить.

Спасибо всем, я очень ценю это.

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