0

行 ID を codeigniter 形式で渡すにはどうすればよいですか? 私はこのコードを持っています

if(isset($records)) : foreach($records as $row) : ?>
    <?php echo form_open('site/update/'); ?>
    <td><?php echo form_input('solution_time', $row->solution_time); ?></td>
    <td><textarea><?php echo $row->note; ?></textarea></td>
    <td><?php echo form_submit('update', 'Update'); ?></td>
    <?php form_close(); ?>
    </tr>
    <?php endforeach; ?>
    <?php else : ?>
    <h2>No Records</h2>
    <?php endif; ?>

しかし、毎回そのようにすべての行の ID に対して 1 を返します。

localhost/it/index.php/site/update/1

更新: 新しい行 (form_hidden) を追加しましたが、それも機能していません

if(isset($records)) : foreach($records as $row) : ?>
        <?php echo form_open('site/update/'); ?>
    <?php echo form_hidden('id', $row->id); ?>
        <td><?php echo form_input('solution_time', $row->solution_time); ?></td>
        <td><textarea><?php echo $row->note; ?></textarea></td>
        <td><?php echo form_submit('update', 'Update'); ?></td>
        <?php form_close(); ?>
        </tr>
        <?php endforeach; ?>
        <?php else : ?>
        <h2>No Records</h2>
        <?php endif; ?>
4

1 に答える 1

1

行IDをフォームopenに渡してみてください。あなたがしているのは、同じアクションで一連のフォームを作成することであり、送信は最初のフォームをコントローラーに返すだけです。フォームアクションでIDを渡すと、それが修正されます。

 <?php echo form_open('site/update/'.$row->id); ?>

もう1つのオプションは、jQueryを使用して更新を行うことです。

        $(document).on("click", ".updateLink", function() {
    $row = $(this).closest('tr');

    $.ajax({
        type: "GET",
        url: "<?=base_url()?>site/update/",
        data: $row.find('input').serialize(),
  dataType: "json",
        success: function(content) {
            if (content.status == "success") {
                $row.stop().css("background-color", "#99FF66").animate({backgroundColor: "#FFF"}, 1500);
            } else {

            $("#error").html('<p>'+content.message+'</p>');
            }
        }
    });
    return false;
});

フォームで、送信ボタンをリンクに変更します。

<td><?php echo <a href="#" class="updateLink">Update</a></td>

次に、コントローラーで、成功時に成功メッセージをエコーバックする必要があります。

if(update successfull)
{
    print json_encode(array("status"=>"success","message"=>""));
}
于 2012-11-09T13:11:58.547 に答える