输入自定义属性值:在PHP中检索和循环

时间:2011-10-12 21:27:52

标签: php jquery codeigniter input foreach

当我点击按钮时,我会生成一些带有自定义属性的输入字段:

<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' />

我在PHP中使用foreach循环检索'name'值:

$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 '</pre>';
    }

要获得'类型',我会执行$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="" />';

但它只返回我最后一个'数据类'值而不是每个值:/

现在我只需循环每个输入字段的'data-kind'值并在我的foreach循环中检索它们

非常感谢任何帮助!!


非常感谢您的回答,这对我帮助很大!但是现在我如何在'type'数据中添加当前foreach中的结果:

$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 '</pre>';
    }

3 个答案:

答案 0 :(得分:1)

如果您想将所有data-kind值放在#field_type字段中,则需要以下内容:

var fieldTypes = [];
$("input[data-kind]").each(function()
{
    fieldTypes.push( $(this).attr('data-kind') );
});
$("#field_type").val(fieldTypes.join(','));

答案 1 :(得分:0)

也许你错过了加号? $("#field_type").val(field_type' '); 应为$("#field_type").val(field_type+' ');

答案 2 :(得分:0)

此代码: 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 + '" />');
});