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 或其他格式。

要从 PHP 以 JSON 格式返回响应,您可以使用以下json_encode()函数:

$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 回答
1

只需尝试从ajax函数返回您需要的值。这样的事情可能会做。

在你的insert.php

echo or return需要填充到页面中的data末尾的function

$.ajax({
    type: "POST",
    url: "supplierpriceexport/insert.php",
    data: dataString,
    cache: false,
    success: function(data){
             //Now you have obtained the data that was was returned from the function
             //if u wish to insert the value into an input field try
           $('#input_field').val(data); //now the data is pupolated in the input field 

     }
    });
于 2013-10-07T08:22:34.213 回答
0

不要使用window.location = "?action=suppliertargetpiceexport";

这将重定向到页面suppliertargetpiceexport

$.ajax({
    type: "POST",
    url: "supplierpriceexport/insert.php",
    data: dataString,
    cache: false,
    success: function(html){
        $('#your_success_element_id').html(html); // your_success_element_id is your element id where the html to be populated
        $("#flash").hide();
    }
});

your_success_element_id是要填充 html 的元素 id

于 2013-10-07T08:14:43.300 回答