1

ページを更新するまで、jEditable フォームから送信された値を取得して Web サイトに表示できないようです。ただし、MySQL データベースは正しく更新されます。PHPとMySQLを使用しています。

ページを更新せずに jEditable を使用してその場で更新する方法を誰か説明してもらえますか?

PHPアクションページ

if($_POST["issue_edit"]){
    mysql_query("UPDATE timeline SET comment='".$_POST["issue_edit"]."' WHERE ticket='".$_POST["id"]."' AND issue='1'");
    echo $_POST["issue_edit"];
    // header("location: ../?".$query."");

}

メインページ

                <script>
                $(document).ready(function() {
                    $('.edit<?php echo $ticket["id"]; ?>').editable('http://www.4dcreative.co.uk/support/tickets/action/index.php', { 
                        type        : 'textarea',
                        cancel      : 'Cancel',
                        submit      : 'OK',  
                        name        : 'issue_edit',
                        onblur      : 'ignore'
                    });
                });
            </script>
            <label>Issue:</label><p class="edit<?php echo $ticket["id"]; ?>" id="<?php echo $ticket["id"]; ?>"><?php 

            while($timeline_stub = mysql_fetch_array($timeline)) {

                if($timeline_stub["type"]=="issue"){
                    echo nl2br($timeline_stub["comment"]);
                }
            }

            ?></p>
4

1 に答える 1

0

issue_editパラメータとして渡された入力されたテキストが失われるとは思いません...

たぶん、これは以前のバージョンの Jeditable の動作でしたか? 実際、ユーザーが数字を入力できるフィールドがいくつかあるという、同様の、しかしやや反対の問題がありましたが、「フォーマットされた」値で数字を更新したかったのです(たとえば、「1000」ではなく「1,000.00」) )。

更新せずにページを更新するには、Jeditable プラグインが指定された「送信 URL」にリクエストを行った後、プラグイン関数callbackの呼び出しでオプション パラメータに関数を指定する必要がありeditableます。私自身のコードからのコールバック関数の例を次に示します。

function (result) {

    if (result.status == 'Success') {
        thisAmountElement.className += ' success';
        $(thisAmountElement).text(result.formattedAmount);
    }
    else
        thisAmountElement.className += ' danger';
}

送信 URL で要求を処理するコードは、statusandformattedAmountプロパティを持つ JSON オブジェクトを返します。[formattedAmountプロパティには、Jeditable によって送信された新しい金額が含まれていますが、ページ上の他のすべての金額をフォーマットするのと同じサーバー側コードを使用してフォーマットされています。]

于 2014-01-31T15:21:46.867 に答える