1

Ajax 経由でフォームを送信していますが、フォームの送信時にプロジェクト名をリスト項目の先頭に追加したいと考えています。成功関数内で必要な情報を引き出すことを除いて、すべて正常に機能します。データ[プロジェクト][プロジェクト名]を掲載中です。成功関数内でプロジェクト名を取得するにはどうすればよいですか? 現在、「データ」がリストに表示されています。フォームにはテキストボックスが 1 つしかありません。

<script type="text/javascript">
    $(document).ready(function () {     
        var frm = $('#ProjectAddForm');
        frm.submit(function() {
            $.ajax({
                type: frm.attr('method'),
                url: frm.attr('action'),
                data: frm.serialize(),
                success: function(data) {
                    $('#ProjectProjectName').val('');
                    $('#ProjectList').prepend("<li style='color: green;'>data</li>");

                }
            })
        });
        return false;               
    });
</script>

HTML:

<ul id="ProjectList">
            <?php foreach ($projects as $project): ?>                       
                <li><?php echo $project['Project']['project_name']; ?></li>
            <?php endforeach; ?>
            <?php unset($project); ?>
        </ul>

<form accept-charset="utf-8" method="post" onsubmit="event.returnValue = false; return false;" id="ProjectAddForm" action="/callLog/projects/add">
4

1 に答える 1

1

リクエストに dataType: 'json' を追加する必要がありました。

<script type="text/javascript">
    $(document).ready(function () {     
        var frm = $('#ProjectAddForm');
        frm.submit(function() {
            $.ajax({
                type: frm.attr('method'),                   
                url: "<?php echo $this->Html->Url(array('controller' => 'projects', 'action' => 'add.json')); ?>",
                data: frm.serialize(),
                dataType: 'json',
                success: function(data) {
                    $('#ProjectProjectName').val('');
                    $('#ProjectList').prepend("<li class='icon-remove', style='color: green;'>" + data.projectName + "</li>");
                    $('#modalProject').modal('hide');
                }
            })
        });
        return false;               
    });
</script>
于 2013-04-09T20:40:18.550 に答える