1

我正在尝试将一些 ajax 合并到我的代码中,目前它工作得很好,当用户单击一个按钮时,它会将一些隐藏的输入发送到另一个 php 脚本,执行一些操作,然后将结果发送回并输出,所有更新都使用没有刷新等。

然而,我试图发送和接收的最后一部分是一个显示一些 html 代码的变量,换句话说,被发送回来和输出的其他变量只是数字和字母,而这个是实际的 div它没有输出它,我在没有 ajax 的情况下尝试过,当页面第一次加载并且效果很好时,但是当我使用 ajax 尝试时没有,希望下面的代码会更有意义。我希望能够发回的变量是$sl_output.

主页上的 AJAX 代码

<script>
$(document).ready(function (){ 

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

        var hidden_count = $('input[name=addon_detail_hidden_count]').val();
        var land_required = $('input[name=addon_hidden_land_required]').val();
        var sl_array = $('input[name=addon_hidden_shopping_list_array]').val();
        var button_tok = "land_down";

     $.ajax({
            type: "GET",
            url: "addon_detail_calc.php",
            data: { hidden_count: hidden_count, button_tok: button_tok, land_required: land_required, sl_array: sl_array  },
            dataType: "json",
            success: function (data) {
    $("#res_expected_gain").html(data.total_hidden);
    $("#output").html(data.output);
    $("#res_expected_profit").html(data.land_required);
    $("#res_total_supply_time").html(data.test_time);
    $("#land_selected_token").html(data.total_hidden);
    $("#sl_output_div").html(data.sl_output);
}
        });
        return false;
})

});

代码在addon_detail_calc.php

    <?php 
// header('application/json');
$hidden_count = $_GET["hidden_count"];
$button_tok = $_GET["button_tok"];
$land_required = $_GET["land_required"];
$sl_array = $_GET["sl_array"];
$sl_output = "";
if($button_tok == "land_up"){

    //MAIN CODE SHALL BE DONE HERE
    $hidden_count = $hidden_count + 1;
    $test_time = $hidden_count * 66;


    $new_sl_array = array();
$final_sl_array = array();
foreach ($sl_array as $columnName => $columnData) {

        if($columnName == "0"){
            unset($sl_array[$columnName]);

        }else{

            $new_columnData = $columnData * 54;
            $new_sl_array[$columnName] = $new_columnData;

        }

    }
foreach ($new_sl_array as $columnName => $columnData) {

            $sl_output = "";
            $sl_output = '<li class="add_detail_content_ele_wrap_ele"><div class="add_detail_content_ele_wrap_ele_header">'.$columnName.'</div><!--end add_detail_content_ele_wrap_ele_header--><div class="add_detail_content_ele_wrap_ele_pic"></div><!--end add_detail_content_ele_wrap_ele_pic--><div class="add_detail_content_ele_wrap_ele_amount">47 Required</div><!--end add_detail_content_ele_wrap_ele_amount--><div class="add_detail_content_ele_wrap_ele_user_amount">You Have 0</div><!--end add_detail_content_ele_wrap_ele_user_amount--></li>';

            $final_sl_array[$columnName] = $sl_output;

        }

$array_result = implode("", $final_sl_array);

    }else{        
        $hidden_count = $hidden_count;  

}else{

    $hidden_count = $hidden_count;  

}


$output = "";
$output = '<input type="hidden" name="addon_detail_hidden_count" id="addon_detail_hidden_count" class="addon_detail_hidden_count" value="'.$hidden_count.'" />';
include 'connect_to_mysql.php';

echo json_encode(array("total_hidden" => $hidden_count, "output" => $output, "land_required" => $hidden_count, "test_time" => $test_time, "sl_output" => $final_sl_array ));

 ?> 

我想问题是,可以查看并重新输出正在传输的 html 代码变量吗?

编辑

我已经更新了上面的代码,似乎第一个问题是 foreach 循环没有处理正确的数据,我不得不重新整理并添加另一个数组。因此,我必须将数组中的每个值final_sl_array放入一个变量中,我试图将其分解,当我在页面打开时通过普通 php 运行它时它起作用了,但是,现在当我通过 ajax 尝试它时,它不是工作,而不是返回任何结果,任何想法为什么它适用于一个而不是另一个?

4

0 回答 0