2015-05-01 3 views
1

Я работаю в Wordpress, и я создал пользовательский плагин. В котором у меня есть несколько данных из базы данных, и мой код выглядит следующим образом.Получить значение скрытого ввода для jquery

<?php 
foreach($result as $res) 
{  
?> 
<input type="hidden" class="status" value="<?php echo $res->review_status; ?>" /> 
<button class="aprove" value="<?php echo $res->review_id; ?>">Aprove</button> 
<?php 
} 
?> 

Теперь я хочу получить значение скрытого поля в jQuery. Мой JQuery код выглядит так:

jQuery(".aprove").click(function(){ 
    var status = jQuery('.status').val(); 
    alert(status); 
    }); 

При нажатии на кнопку, то это показывает только первое значение скрытого поля. Например, скрытое значение кулачка равно 1, а второе значение равно 0, тогда оно отображает только первое значение 1 для обеих кнопок. Итак, что мне нужно сделать, чтобы получить другую скрытую ценность?

+0

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

ответ

1

Вот ваш ответ. для каждой кнопки значение будет принято от входного элемента до кнопочного элемента

jQuery(".aprove").click(function(){ 
    var status = jQuery(this).prev('.status').val(); 
    alert(status); 
}); 
+0

Отображается сообщение об ошибке «undefined». –

+0

см. Здесь http://fiddle.jshell.net/k0hvxe3d/ –

+0

Он работает в скрипке, но я не знаю, почему я получил ошибку в своем локальном хосте. –

1
var status = jQuery('.status').val(); 
alert(status); 

это будет получить значение элемента первого найденное на странице и возвращает результат,

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

JQuery каждые() - https://api.jquery.com/jquery.each/

jQuery('.status').each(function(){ 
    alert($(this).val()); 
}); 

// это даст вам все значения, которые вы хотите, один от один

5

Try:

jQuery(".aprove").click(function(){ 
    jQuery('.status').each(function(){ 
     var status = jQuery(this).val(); 
     alert(status); 
    }); 
}); 

.each будет цикл через все классы, и это даст предупреждение каждое значение этого.

JS Fiddel Demo

Обновлено

Updated Demo

+0

Я хочу только одно значение, когда я нажимаю кнопку. –

+0

Смотрите мою обновленную демоверсию! –

0

вы можете использовать .map как это, чтобы получить то, что вы хотите:

$(document).ready(function(){ 
 
    \t var status=[] 
 
    \t jQuery(".aprove").click(function(){ 
 
    \t \t status = $(".status").map(function() { 
 
    \t \t \t return $(this).val(); 
 
    \t \t \t }).get(); 
 
    \t \t \t alert(status);//array of values 
 
    \t \t  }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="hidden" class="status" value="0" /> 
 
\t  <input type="hidden" class="status" value="1" /> 
 
\t <button class="aprove" value="">Aprove</button>

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