我的代码有问题,使用jquery ajax执行php脚本并将数据返回给浏览器。我想从“回声”中返回更多一个值。我的PHP脚本的输出。所以我使用json_encode返回数组的数据通知。但是我的代码在这里没有返回任何值,也没有在我的浏览器中发生任何响应。这是我的代码。
// AJAX Code To Submit Form
// Get the value from selectbox
var so = $(this).find('option:selected').text();
var dataString = 'so1='+ so;
$.ajax({
type: "POST",
url: "functions/ajaxsubmit.php",
data: dataString,
cache: false,
success: function(response){
var pos1_text = $("#pos1").text(response.a);
}
});
并且我的PHP代码 ajaxsubmit.php
<?php
include("connection.php");
//Fetching Values from URL
$sign1 = $_POST['so1'];
//Display Signing Position
$sql = "SELECT * FROM signing_officer WHERE signing_incharge = '$sign1'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
$dbSigning_id = $row['signing_id'];
$dbSigning_position = $row['signing_position'];
}
$output = array('a' => $dbSigning_id, 'b' => $dbSigning_position);
echo json_encode($output, JSON_FORCE_OBJECT);
?>
任何人都可以帮我找到这段代码的错误吗?真的需要这个..谢谢你
答案 0 :(得分:1)
虽然我同意@Aram Tchekrekjian的评论,但我认为错误在于jQuery,因为你的AJAX请求没有相应地接收JSON数据
实现目标的两种方法是(使用ajax函数):
$.ajax({
type: "POST",
url: "functions/ajaxsubmit.php",
data: dataString,
cache: false,
success: function(response){
var pos1_text = $("#pos1").text(response.a);
},
dataType: 'json'
});
或(通过使用post函数):
$.post("functions/ajaxsubmit.php", dataString, function(response){
var pos1_text = $("#pos1").text(response.a);
}, 'json');
瞧!
此外,我的目标是@Aram Tchekrekjian,因为我觉得它完成了我的:
$dbSigning_ids = array();
$dbSigning_positions = array();
while($row = mysql_fetch_array($result)) {
$dbSigning_ids[] = $row['signing_id'];
$dbSigning_positions[] = $row['signing_position'];
}
$dbSigning_array = array($dbSigning_ids,$dbSigning_positions);
echo json_encode($dbSigning_array);
Latter似乎解决了你的问题,但我也看到了jQuery实现中的错误。
干杯,
答案 1 :(得分:0)
您只返回获取数组中的最后一个元素,您需要为字段定义数组,然后将它们放入另一个容器数组中,然后通过json_encode回显它:
$dbSigning_ids = array();
$dbSigning_positions = array();
while($row = mysql_fetch_array($result)) {
$dbSigning_ids[] = $row['signing_id'];
$dbSigning_positions[] = $row['signing_position'];
}
$dbSigning_array = array($dbSigning_ids,$dbSigning_positions);
echo json_encode($dbSigning_array);
另外,Brandon的评论非常重要,你需要从浏览器开发工具检查网络,看看你是否得到了json响应。