1

追加後にajaxを使用してデータベースに値を追加していますフロントエンドに値を表示したいのですが、成功した後window.location、ページが更新されるため、データを表示するために使用しています。ページを更新したくありませんデータを見せて、誰でもこれを行う方法を教えてください。

以下は私のajaxです

$(function() {
    $(".supplierpriceexport_button").click(function() {

    var pricefrom = $("#pricefrom").val();
    var priceto =  $("#priceto").val();
    var tpm =  $("#tpm").val();
    var currency =  $("#currency").val();


    var dataString = 'pricefrom='+ pricefrom +'&priceto='+priceto+'&tpm='+tpm+'&currency='+currency;


    if(pricefrom=='')
    {
    alert("Please Enter Some Text");
    }
    else
    {
    $("#flash").show();
    $("#flash").fadeIn(400).html;

    $.ajax({
    type: "POST",
    url: "supplierpriceexport/insert.php",
    data: dataString,
    cache: false,
    success: function(html){
    $("#display").after(html);

    window.location = "?action=suppliertargetpiceexport";
    $("#flash").hide();
    }
    });
    } return false;
    });
    });
4

3 に答える 3

2

データを投稿するために使用しているコードは、意味のあるデータを返す必要があります。JSON はこれに役立ちますが、HTML またはその他の形式にすることができます。

json_encode()PHP から JSON としてレスポンスを返すには、次の関数を使用できます。

$return_html = '<h1>Success!</h1>';
$success = "true";

json_encode("success" => $success, "html_to_show" => $return_html);

このコードでは、dataType または JSON を設定し、ページ (DOM) に挿入する HTML を含む複数の値を返すことができます。

$.ajax({
    type: "POST",
    url: "supplierpriceexport/insert.php",
    data: dataString,
    cache: false,

    //Set the type of data we are expecing back
    dataType: json

    success: function(return_json){

        // Check that the update was a success
        if(return_json.success == "true")
        {
            // Show HTML on the page (no reload required)
            $("#display").after(return_json.html_to_show);
        }
        else
        {
            // Failed to update
            alert("Not a success, no update made");
        }
});

window.location を完全に取り除くことができます。そうしないと、DOM の更新が表示されません。

于 2013-10-07T08:17:41.887 に答える