我正在尝试将一些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,它没有工作,没有返回任何结果,任何想法为什么它适用于一个而不是另一个?