Введите значение пользовательского атрибута: извлечение и цикл в PHP - PullRequest
0 голосов
/ 13 октября 2011

Когда я нажимаю на кнопки, я генерирую поле ввода с такими атрибутами:

<input type='text' name='field["+ i++ +"]' value='' data-kind='title' />
<input type='text' name='field["+ i++ +"]' value='' data-kind='video' />
<input type='text' name='field["+ i++ +"]' value='' data-kind='text' />

Я получаю значение 'name' с помощью цикла foreach в PHP:

<code>$result = array_combine($num, $records);

    foreach ($result as $rank => $content)
    {
        $data = array(
            'content' => $content,
            'post_id' => $post_id,
            'rank' => $rank,
            'type' => $this->input->post('field_type') // HERE
            );
                echo '<pre>';print_r($data);echo '
';}

Чтобы получить 'type', я делаю $this->input->post('field_type');, который задается следующим образом:

var field_type = $(":input[data-kind]").attr('data-kind');
$("#field_type").val(field_type' ');

и:

echo '<input type="hidden" id="field_type" name="field_type" value="" />';

Но этовозвращает мне только последнее значение типа данных, а не каждое: /

Теперь мне просто нужно зациклить значение типа данных для каждого поля ввода и извлечь их в моем цикле foreach

Любая помощь будет очень признательна !!


Большое спасибо за ваши ответы, это очень помогло мне!Но теперь, как я могу добавить результат в моем текущем foreach для данных типа:

<code>$result = array_combine($num, $records);

    foreach ($result as $rank => $content)
    {
        $data = array(
            'content' => $content,
            'post_id' => $post_id,
            'rank' => $rank,
            'type' => // HERE I NEED EACH ATTRIBUTE VALUE
            );
                echo '<pre>';print_r($data);echo '
';}

Ответы [ 3 ]

1 голос
/ 13 октября 2011

Если вы хотите поместить все значения data-kind в поле #field_type, вам нужно что-то вроде этого:

var fieldTypes = [];
$("input[data-kind]").each(function()
{
    fieldTypes.push( $(this).attr('data-kind') );
});
$("#field_type").val(fieldTypes.join(','));
0 голосов
/ 13 октября 2011

Этот код: http://jsfiddle.net/PKgkU/17/

Делай, что хочешь!

$('input').each(function(el) {
    switch ($(this).data('kind')) {
    case "video":
        kind = 'video';
        break;
    case "image":
        kind = 'image';
        break;
    case "title":
        kind = 'title';
        break;
    default:
        break;
    }
    $(this).after('<input type="hidden" id="field_type" name="field_type" value="' + kind + '" />');
});
0 голосов
/ 13 октября 2011

Может быть, вы пропустили знак плюс? $("#field_type").val(field_type' '); должно быть $("#field_type").val(field_type+' ');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...