gpt4 book ai didi

php - Ajax表单返回变量给php

转载 作者:行者123 更新时间:2023-12-04 05:45:22 25 4
gpt4 key购买 nike

我有另一个问题:

Ajax 表单运行良好。他们中的大多数需要做 mysql 的事情,并且只有在条目可以写入或不可写入时才返回值。我只使用了 echo 语句。例如 echo "1";如果可以写入值并回显“2”;如果无法写入值。

现在我需要回调 3 个变量。我知道我可以将它们写入数组中。我的问题只是,我无法将此变量返回到我的可见站点。

这是我的 JavaScript 代码:

//Show statistic
$('.statistic_submit').click(function(){
if ($('#month').val() == 'none' || $('#year').val() == 'none') {
$("#dialog_empty").dialog( "open" );
return false;
}

var form = $('#statistic_view');
var data = form.serialize();

$.ajax({
url: "include/scripts/user_statistic.php",
type: "POST",
data: data,
success: function (reqCode) {
if (reqCode == 1) {
//Show generated table
$('.done').fadeOut('slow');
$('.done').fadeIn('slow');
}
if (reqCode == 2) {
//No values found
$('.done').fadeOut('slow');
$("#dialog_error").dialog( "open" );
}
}
});
return false;
});

这是我的 html 代码:
<div>
<form id="statistic_view" action="include/scripts/user_statistic.php" method="post">
<select name="month" id="month">
<option value="none" class="bold italic">Monat</option>
<?php
for($i=1; $i<=12; $i++){
if($i == $month)
echo "<option value=\"".$i."\" selected>".$month_name[$i]."</option>\n";
else
echo "<option value=\"".$i."\">".$month_name[$i]."</option>\n";
}
?>
</select>
<select name="year" id="year">
<option value="none" class="bold italic">Jahr</option>
<?php
for($i=2012; $i<=$year; $i++){
if($i == $year)
echo "<option value=\"".$i."\" selected>".$i."</option>\n";
else
echo "<option value=\"".$i."\">".$i."</option>\n";
}
?>
</select>
<br/><br/>
<div id="user_statistic">
<input type="submit" id="small" class="statistic_submit" value="Daten anzeigen">
</div>
</form>
<br />
<div class="done">
<p class="bold center"><?php echo "Besucher ".$month_name[$month]." ".$year; ?></p>
<canvas id="cvs" width="680" height="250">[No canvas support]</canvas>
<script>
chart = new RGraph.Line('cvs', <?php print($data_string) ?>);
chart.Set('chart.tooltips', <?php print($labels_tooltip) ?>);
chart.Set('chart.tooltips.effect', 'expand');
chart.Set('chart.background.grid.autofit', true);
chart.Set('chart.gutter.left', 35);
chart.Set('chart.gutter.right', 5);
chart.Set('chart.hmargin', 10);
chart.Set('chart.tickmarks', 'circle');
chart.Set('chart.labels', <?php print($labels_string) ?>);
chart.Draw();
</script>
</div>
</div>

这是我的 user_statistic.php:
... (mysql stuff)
/******************************/
/** Create diagram
/******************************/
$labels = array();
$data = array();

for ($j=1; $j<=$days; $j++) {
$labels[$j] =$j;
$data[$j] = $day_value[$j];
}

// Aggregate all the data into one string
$data_string = "[" . join(", ", $data) . "]";
$labels_string = "['" . join("', '", $labels) . "']";
$labels_tooltip = "['" . join("', '", $data) . "']";

//data written
echo "1";

所以 echo "1";告诉我的脚本一切都很好。但现在我需要 $data_string、$labels_string 和 $labels_tooltip。那么如何将这些值从 user_statistic.php 返回到我的身边呢?

最佳答案

避免自行将数组转换为字符串。如果您需要将 PHP 数组传递回您的 jQuery,您应该使用 json_encode 来实现。功能:

echo json_encode( $array );

这将作为一个 JSON 对象出现,然后您可以处理客户端。您的 JSON 字符串将返回到您的 $.ajax 的回调中。方法:
$.ajax({
url: "include/scripts/user_statistic.php",
type: "POST",
data: data,
dataType: 'json',
success: function ( response ) {
/* response is your array, in JSON form */
}
});

例如,如果我们的 PHP 脚本执行以下操作:
$response = array(
'message' => 'Success',
'allData' => array( 'Jonathan', 'Mariah', 'Samuel', 'Sally' )
);

echo json_encode( $response );

我们可以提醒 message从我们的 jQuery 像这样:
success: function ( response ) {
alert( response.message );
}

关于php - Ajax表单返回变量给php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com