2014-12-01 2 views
1
<li> 
    <input name="select_address" type="radio"> 
    <span><?php echo Form::hidden('values', json_encode($arr));?></span> 
</li> 

Я использую следующий код, чтобы получить закодированный $ arr, но не работает.Как получить значение json с jquery?

$(function() { 
    $("input[type='radio']").click(function(){ 
     $('table').removeAttr('hidden'); 
     console.log($(this).next().html()); 
    }); 
+2

У вас есть недостающий закрытие ')' вздохнуть после 'json_encode' – vaso123

+0

Пожалуйста, разместите свой полный HTML-код, чтобы мы могли вам помочь. –

+0

Вы прыгаете через ненужные обручи. Зачем использовать данные в DOM? Чтобы быть полезной, он будет в конечном итоге в javascript, поэтому используйте его непосредственно, например: 'var = ' между '' теги. –

ответ

1

Чтобы получить значение с вашего скрытого ввода, необходимо использовать val(). Затем вам нужно проанализировать строку в javascript object/array.

Другой чистый подход установить JSON в атрибуте data- и пусть JQuery прочитать его формируют данные атрибута

<li> 
    <input name="select_address" type="radio" data-myData='<?=json_encode($arr)?>'>  
</li> 

.

$("input[type='radio']").change(function(){  
    console.log($(this).data('myData')); 
}); 

При правильном формате JSON передается атрибут data-, JQuery data() метод будет уже обрабатывать его как объект или массив

Ссылка: data() API Docs

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