2010-01-09 3 views
0

Есть ли способ сделать несколько флажков и иметь связанный идентификатор/имя, автоматически заполняемый в текстовом поле/редактируемом текстовом поле?Ввод данных флажка в текстовое поле

Согласно одному из предложений ... Я расширяю и уточняю.

У меня есть несколько флажков, которые я хочу сохранить в поле SAME db ... в то же время. Итак, поскольку я новичок-программист, на котором работают php/sql (и продвинутые языки), я решил, что самый простой и быстрый способ - установить идентификатор флажка в одно текстовое поле, а затем извлечь эту динамическую информацию из текстового поля в поле db, так как эта информация должна соответствовать w/другим текстовым полям для одной транзакции. Итак:

Имя: текстовое поле
ID #: текстовое поле
Другая информация: текстовое поле
Check1: X
Check2: X
Check3:

и дб все бы линии там ... помогите ... Я в замешательстве.

ответ

0

Не могу здесь прокомментировать, но в ответ на ваш комментарий «Пробовал этот путь, и это ...», аарон, вы неправильно используете команду print_r. print_r предназначен для сброса данных/структуры переменных массива в текстовом формате, вы не можете выгрузить этот текст в поле value = "" формы ввода html. То, что вы на самом деле достижения, делая это в конечном итоге выглядит, как это в генерируемый HTML:

<input name="Extrasfield" type="text" id="extras" value='Array 
(
    0 => 'adam', 
    1 => 'nick', 
    2 => 'simon' 
)' disabled> 

Если вы хотите, чтобы текстовое поле, чтобы содержать что-то вроде «адам, ник, симон», вам придется заменить print_r с чем-то вроде этого:

implode(', ', $Extras) 

где бит ',' - это разделитель, который вы хотите использовать.

+0

Хорошо ... поэтому я сохранил массивы на месте, добавил 2 $ кодов: '$ Экстра = $ _POST ['Extras']; $ Extra = implode (',', $ Extras); ' Затем я добавил $ Extra в db, и он отлично работал. Спасибо, marc b. –

0

Несомненно. Вы можете использовать jQuery.each для прокрутки флажков и добавить id/nme в текстовое поле/поле.

+0

Не уверен, что OP после решения js или php - вопрос может быть немного более наглядным! –

0

Если у вас есть форма с несколькими элементами CheckBox:

<input type="checkbox" name="people[]" value="adam" /> 
<input type="checkbox" name="people[]" value="nick" /> 
<input type="checkbox" name="people[]" value="simon" /> 

Добавление [] после того, как имя помещает все значения в массиве PHP. Вы можете получить доступ к данным, как так:

$people = $_POST['people']; 
print_r($people); // prints array('adam','nick','simon'); 

Значение массива будет присутствовать только если соответствующий флажок был установлен.

+0

Я не знал, что PHP может получить такие массивы! Вы также, очевидно, захотите проверить любые данные, которые вы получаете из массива $ _POST для атак XSS или SQL, перед их отображением или хранением. – Andrew

+0

Пробовал этот способ, и он отказывается вводить данные флажка в текстовое поле ... [code] [/ code] Отображает« 1 »и только входы« Array »в поле базы данных. –

0

Как следует из приведенного выше ответа, используйте JQuery. Вот какой полезный код,

$("#id :checkbox").click(function() { 

    var values = []; 

    $('#id :checked').each(function() { 
     values.push($(this).val()); 
    }); 

    $("#id").val(values) 
}); 

Удачи вам!

+0

Как бы добавить это в существующий php-код? И где бы часть была добавить его в текстовое поле? Мне нравится код (короткий и сладкий), но как я могу получить это в текстовое поле? Затем, при условии, что я правильно его закодирую, могли ли эти значения в текстовом поле быть добавлены в поле базы данных в виде одной строки? Чтобы предотвратить дополнительное кодирование в текстовом поле ... Я добавил «отключено» в конце. –

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