2013-08-21 3 views
-2

У меня есть функция php, которая просто дает мне значение массива с учетом ключа.Передача javascript var на php

Пример:

<?=__('mykey')?> 

Возвращает значение моего массива.

Я бы назвал эту функцию после вызова ajax jQuery с параметром. POST-дайте мне массив JSON, и мне нужно использовать предыдущий FUNCT как это

$.ajax({ 
    url: myfile.php', 
    type: 'POST', 
    data: $('#contact_form').serialize(), 
    dataType: 'json', 
}).done(function(data) { 
    str = ''; 
    $.each(data, function(index) { 
     $('#message').html(" <?=__('"+index+"')?> "); 
    }); 
}) 

Проблема в том, что значение индекса внутри функции $ .each не передается PHP ... есть способ решить это, или я должен сделать что-то вроде этого?

$.each(data, function(index) { 
    switch(index):{ 
     case 1: $('#message').html(" <?=__('1')?> "); break; 
     case 2: $('#message').html(" <?=__('2')?> "); break; 
     case 3: $('#message').html(" <?=__('3')?> "); break; 
      ... 
    } 

}); 
+2

ввода Я абсолютно уверен, что ответ можно найти здесь: http://stackoverflow.com/questions/1917576/how-to-pass-javascript-variables-to-php –

+0

стр. короткие теги - нет-нет выше, сохраните свой собственный рефакторинг при обновлении версий PHP в будущем и использовании полных тегов. – xXPhenom22Xx

ответ

1

Я должен был сделать что-то подобное и на самом деле используется JQuery для установки значения на скрытый вход для меня, чтобы захватить позже.

$('#some-hidden-input').val(yourvalue) 

Убедитесь, что это скрытое поле существует и в оказанной HTML

Тогда PHP может просто захватить, что значение входного сигнала на POST.

$myVar = $_POST['some-hidden-input']; 
+1

Вы также можете использовать $ .data(), который предназначен для такого рода вещей. '$ ('# message'). data ('name', value)'. И вы получите его: '$ ('# message'). Data ('name')' – Ringo

1

Чтобы передать переменные PHP с помощью Javascript, единственным разумным способом является использование AJAX, но вы делаете это только тогда, когда вы публикуете что-то. Если нет, лучше всего иметь поле hidden input.

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

Чтобы присвоить значение <input name="A" id="B">

$("Input[name='A']").val(data);

или

$('#B').val(data);

Оба присвоить значение данных в поле

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