$item) { //it may give warning because empty array (i.e items = []. $keywords[$i] = $item['keyword']; // this will store keyword in $keywords array. $i++; } } $message = ''; $message .= '
'; $message .= "
"; $message .= ""; echo $message; ?>"; foreach ($keywords as $key => $value) { $message .= " Sr. No.: Keyword "; } $message .= " ".$key." " .$value. " Конструкция foreach обеспечивает простой способ перебора массивов. foreach работает только с массивами и объектами и выдает ошибку при попытке использовать его для переменной с другим типом данных или неинициализированной переменной.
Вот тот, который работает (, см. Пример ):
function updateTextArea() {
var allVals = [];
$('#c_b :checked').each(function() {
allVals.push($(this).val());
});
$('#t').val(allVals);
}
$(function() {
$('#c_b input').click(updateTextArea);
updateTextArea();
});
Через несколько месяцев был задан другой вопрос о том, как сохранить работоспособность вышеупомянутого, если идентификатор изменяется. Итак, решение сводится к тому, чтобы отобразить функцию updateTextArea в нечто общее, использующее классы CSS, и использовать функцию live для мониторинга DOM на предмет этих изменений.
Если вы хотите сразу ввести значение любого флажка во время его проверки, то это должно работать для вас:
$(":checkbox").click(function(){
$("#id").text(this.value)
})
В любом случае, вам, вероятно, понадобится что-то вроде этого:
var val = $('#c_b :checkbox').is(':checked').val();
$('#t').val( val );
Это получит значение первого установленного флажка на странице и вставит его в текстовое поле с id = 'textarea'
.
Обратите внимание, что в вашем примере кода вы должны поставить флажки в форме.
Ваш вопрос довольно расплывчатый, но я думаю, что это то, что вам нужно:
$(function() {
$('input[type="checkbox"]').bind('click',function() {
if($(this).is(':checked')) {
$('#some_textarea').html($(this).val());
}
});
});
Редактировать: О, ладно ... поехали ... У вас не было HTML до В любом случае, да, я думал, что вы хотели поместить значение в текстовое поле, когда на него нажимают. Если вы хотите, чтобы значения отмеченных флажков помещались в текстовое поле (возможно, с хорошим разделением запятыми) при загрузке страницы, это было бы так просто:
$(function() {
$('#c_b input[type="checkbox"]:checked').each(function() {
$('#t').append(', '+$(this).val());
});
});
Редактировать 2 Как это сделали люди, вы также можете сделать это для сокращения длинного селектора, который я написал:
$('#c_b :checkbox:checked').each(function() {
$('#t').append(', '+$(this).val());
});
... Я полностью забыл об этом ярлыке. ;)
$(document).ready(function() {
$(':checkbox').click(function(){
var cObj = $(this);
var cVal = cObj.val();
var tObj = $('#t');
var tVal = tObj.val();
if( cObj.attr("checked")) {
tVal = tVal + "," + cVal;
$('#t').attr("value", tVal);
} else {
//TODO remove unchecked value.
}
});
});
Спасибо altCognito, ваше решение помогло. Мы также можем сделать это, используя названия флажков:
function updateTextArea() {
var allVals = [];
$('[name=chkbox]:checked').each(function() {
allVals.push($(this).val());
});
$('#t').val(allVals)
}
$(function() {
$('#c_b input').click(updateTextArea);
updateTextArea();
});