我正在使用PHP并尝试使用jQuery / AJAX从MySQL数据库中获取值。
我的mysql表有四列:id,tail,cg和cw
我的php代码如下所示:
<?php
$inputvalue = $_POST;
$errors = false;
$result = false;
$mysqli = new mysqli('localhost', "root", "", "tp");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
foreach ($inputvalues as $key => $value) {
if(isset($value) && !empty($value)) {
$inputvalues[$key] = $mysqli->real_escape_string( $value );
} else {
$errors[$key] = 'The field '.$key.' is empty';
}
}
if( !$errors ) {
$addresult = "
SELECT *
FROM `air_cg`
WHERE `tail` = '" . $inputvalue['tail'] . "'
ORDER BY `id` DESC
";
if( $result = $mysqli->query($addresult) ) {
// collect results
while($row = $result->fetch_all())
{
$returnResult = $row;
}
}
}
mysqli_close($mysqli);
echo json_encode(['result' => $returnResult, 'errors' => $errors]);
exit;
?>
生成的JSON具有以下格式:
{"result":[["255","Lapdogie","1","2"],["254","Lapdogie","23","234"],["253","Lapdogie","132","454"]],"errors":false}
我用于ajax函数并解析生成的JSON的javascript代码如下所示:
function getcgdata(aa){
$.ajax({
type: "POST",
url: "drawchart.php",
data: {tailnumber:taildata},
dataType: 'json',
cache: false,
})
.success(function(response) {
$('input').removeClass('error').next('.errormessage').html('');
if(!response.errors && response.result) {
$.each(response.result, function( index, value) {
var chartdata=(value);
var cgdata =(cg.value);
console.log(chartdata);
console.log(cgdata);
});
} else {
// append the error to the form
$.each(response.errors, function( index, value) {
// add error classes
$('input[name*='+index+']').addClass('error').after('<div class="errormessage">'+value+'</div>')
});
}
});
}
chartdata的控制台日志显示了这一点: [“256”,“Lapdogie”,“232”,“333”] [“239”,“Lapdogie”,“23”,“12”] [“238”,“Lapdogie”,“1232”,“1232”]
cgdata的控制台日志只显示多次一个值: 232 232 232
我不确定问题是我的PHP代码还是我尝试解析JSON的方式。
答案 0 :(得分:1)
我没有看到你定义cg.value ..
你使用
var cgdata =(cg.value);
但是cg是在哪里定义的?
它可能类似于chartdata [3] ..?
答案 1 :(得分:0)
Rajdeep Paul的建议在下面对我这个特殊情况起了作用:
更改
var cgdata =(cg.value);
到
var cgdata = value[2];
我知道Ludovit Scholtz和Magnus Eriksson指出我的代码存在许多问题,我将在稍后阶段对其进行改进。
谢谢大家!