2

私はplay1.2.5を使用しています。私のビューの1つにデータテーブルがあり、これは1つの列が編集可能です。このために、私はjquery.dataTables.jsおよびjquery.jeditable.jsプラグインを使用しています。

フィールドに新しい値を入力するときに、ajax呼び出しに問題が発生しました。行が編集されるたびに呼び出されるアクションを作成しましたが、これは機能しません。アクションは呼び出されません、誰かが私のエラーを見ることができますか?

ありがとう

これが私の行動です、最初に私はそれが呼ばれているのを見たいです

    public static void configurationChange(SendAllSysParameter para){
    Logger.info( "incoming configuration change", null );
    }

これが私の見解です:

#{extends 'main.html' /}

#{set title:'Sendall Configuration Page' /}

#{script 'jquery.dataTables.js'/}
#{stylesheet 'demo_page.css' /}
#{stylesheet 'jquery.dataTables.css' /}
#{script 'jquery.jeditable.js' /}

<div class="pdx_std_north_panel">
    <table id="table_id" class="display">
    <thead>
        <th>Property</th>
        <th>Value</th>      
    </thead>
    <tbody>
        #{list items:paras, as:'elem' }
        <tr id="${elem.sendAllKey}">
            <td id="${elem_index}">${elem.sendAllKey}</td>
            <td id="${elem_index}">${elem.sendAllValue}</td>                                
        </tr>       
        #{/list}
    </tbody>    
    </table>        
    <script type="text/javascript">

        $(document).ready(function(){
            var oTable = $('#table_id').dataTable();
            //alert("Test2");
            var configurationChangeRoute = #{jsRoute @Application.configurationChange(':element') /};
            console.log('configurationChangeRout mit jsRoute-Tag: ' + configurationChangeRoute.url);
            var configurationChangeAction = #{jsAction @Application.configurationChange(':element')/}; 
            console.log('configurationChangeAction mit jsActionTag: ' + configurationChangeAction);
            //alert(configurationChangeRoute.url);
            //alert(configurationChangeAction);
            /* Apply the jEditable handlers to the table */
            $('td:eq(1)', oTable.fnGetNodes()).editable( configurationChangeAction, {

                "callback": function( sValue, y ) {
                    console.log('callback with svalue ' + sValue + ' and y ' + y);
                    var aPos = oTable.fnGetPosition( this );
                    oTable.fnUpdate( sValue, aPos[0], aPos[1] );
                },

                "submitdata": function ( value, settings ) {
                    console.log('submitdata');
                    return {
                        "row_id": this.parentNode.getAttribute('id'),
                        "column": oTable.fnGetPosition( this )[2]
                    };
                },
                "height": "14px"
            } );

そして私のモデル:

package models;

import java.sql.Timestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import play.db.jpa.GenericModel;
import play.db.jpa.Model;

@Entity
@Table(name="SendAll_SysParameter")
public class SendAllSysParameter extends GenericModel
{

    @Id
    @Column(name = "sendAllKey", unique = true, nullable = false)
    public String sendAllKey;

    @Column(name = "sendAllValue")
    public String sendAllValue;

    @Column(name = "sendAllDate", nullable = false, length = 23)
    public Timestamp sendAllDate;

}
4

1 に答える 1

1

問題を見つけました。ajaxURLへのルートをGETとして宣言しましたが、POSTであるため、playでは見つかりませんでした。エラーログは正しかった;-)

于 2012-10-19T17:25:59.530 に答える