【发布时间】:2017-04-27 00:53:21
【问题描述】:
问题
我有一个 onclick Jquery 函数,它将返回被点击表格行的第一个单元格中的值。然后,我尝试使用 ajax type: 'POST' 将此值传递给 php 脚本,然后该脚本将使用此值执行数据库查询以进行比较。出于某种原因,$_POST 始终为空。 ajax 没有返回任何错误,但我无法在服务器端接收数组的值。任何帮助表示赞赏。
jQuery
>$('tr.profileTableClick').click(function() {
var tableData = $(this).find('td:nth-child(1)').map(function() {
return $(this).text();
}).get();
$.ajax({
url: 'selectAnswers.php',
type: 'POST',
data: {
'id': tableData
},
dataType: 'text',
error: function() {
console.log('Error in ajax request');
},
success: function(data) {
console.log('Success of ajax request');
console.log(data);
}
});
PHP
这是selectAnswers.php 文件:
<?php
$id = $_POST['id'][0];
try {
$conn = new PDO(
"mysql:host=$servername;dbname=$dbname",
$username,
$password
);
$conn->setAttribute(
PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION
);
$stmt = $conn->prepare(
"SELECT
quality_of_service,
self_improvement,
personal_behavior,
organization_rules_commitment,
team_work,
appearance, work_with_high_responsibility,
loyalty_to_organization,
punctuality_on_work,
office_maintaining, areas_of_improvement,
points_of_weakness,
points_of_strength
FROM appraisals_table
WHERE Apr_Id = :id"
);
$stmt->bindValue(
':id',
$id,
PDO::PARAM_INT
);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$ans1 = $row['quality_of_service'];
$ans2 = $row['self_improvement'];
$ans3 = $row['personal_behavior'];
$ans4 = $row['organization_rules_commitment'];
$ans5 = $row['team_work'];
$ans6 = $row['appearance'];
$ans7 = $row['work_with_high_responsibility'];
$ans8 = $row['loyalty_to_organization'];
$ans9 = $row['punctuality_on_work'];
$ans10 = $row['office_maintaining'];
$ans11 = $row['areas_of_improvement'];
$ans12 = $row['points_of_weakness'];
$ans13 = $row['points_of_strength'];
}
} catch(PDOException $e) {
echo 'Error: '. $e->getMessage();
}
$conn = null;
【问题讨论】:
-
tableData的结果是什么? -
根据控制台,结果将是一个字符串。例如“48”,如果我点击第一行。
-
xhr表头长什么样,能发截图吗?
-
这是我在控制台上得到的 Array ( [id] => Array ( [0] => 48 ) )
注意:数组到字符串的转换C:\xampp\htdocs\appraisals\selectAnswers.php 在第 20 行
-
是的,您的 ajax 响应中的结果向我们展示了网络响应