我正在使用 JavaScript/AJAX,因此当用户从下拉菜单中选择“deal_name”时,将使用 showPartnerInfo 函数显示其他信息。这是 k1.php 文件中的相关片段:
function showPartnerInfo(str){
if (str == "") {
document.getElementById("pshipInfo").innerHTML = "";
return;
} else {
var dealName = str;
$.ajax({
type: "GET",
url: 'get_partnerInfo.php?q=',
//dataType: 'JSON',
data: {"q" : dealName},
success: function(json){
//alert(data);
var data = JSON.parse(json);
document.getElementById("pshipInfo").innerHTML = data.tax;
//document.getElementById("pshipInfo").innerHTML = json[1];
},
error: function(){
alert("error");
}
});
}
}
</script>
</head>
<body>
<?php
include ("session.php");
include ("navbar.php");
$taxID = "";
?>
<form style="margin-top: 60px" action="k1_2DB.php" method="post">
<div class="well">
<h1>K1 - Tax Update</h1>
<?php
$query = "SELECT DISTINCT deal_name FROM tbl_deal";
$result = mysqli_query($DBconnect, $query);
if(mysqli_num_rows($result) > 0){
echo "<select name='deal_name' onchange='showPartnerInfo(this.value);'>
<option value=''>Select Investment</option>";
while($row = mysqli_fetch_array($result)) {
echo "<option value='$row[0]'>$row[0]</option>";
}
}else{
echo "<select name=''><option value=''>No Investments Found</option>";
}
echo "</select>";
?>
这是 get_partnerInfo.php 文件:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php
include("config.php");
$q = $_GET['q'];
if (!$DBconnect) {
die('Could not connect: ' . mysqli_error($DBconnect));
}
$pship_query = "SELECT tbl_deal.deal_name, tbl_partnership.pship_name,
tbl_partnership.pship_taxID,
tbl_partner.partner_name,
tbl_deal.deal_tax_id
FROM tbl_deal
INNER JOIN tbl_partnership
ON tbl_deal.pship_ID = tbl_partnership.pship_ID
INNER JOIN tbl_partner
ON tbl_deal.partner_manag_ID = tbl_partner.partner_ID
WHERE tbl_deal.deal_name = '".$q."'";
$result = mysqli_query($DBconnect,$pship_query);
$row = mysqli_fetch_array($result);
$myArray = array(
"tax" => $row["pship_taxID"],
"name" => $row["pship_name"],
"dealTax" => $row["deal_tax_id"],
"parName" => $row["partner_name"]);
$json = json_encode($myArray);
echo $json;
mysqli_close($DBconnect);
?>
</body>
</html>
当我运行上面的代码时,没有任何反应,我在控制台中收到以下错误:
VM245:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse () at Object.success (k1.php:60) at u (jquery.min.js:2) at Object.fireWith [as resolveWith] (jquery.min.js:2) at k (jquery.min.js:2) at XMLHttpRequest。(jquery.min.js:2)
我已经看到了关于处理这个问题的其他答案(堆栈溢出和其他),但似乎没有任何帮助。需要注意的是,在开发者工具的网络选项卡下,get_PartnerInfo.php 的输出为:
{"tax":"45666XA","name":"Daniels and Partners","dealTax":"SEA485","parName":"Harry Petre"}
如果我在 showPartnerInfo 函数中不使用 JSON.parse,则显示上述内容没有问题。似乎是将json对象转换为javascript有问题。有什么建议吗?
在 rickdenhaan 发表评论后,我从 get_partnerInfo.php 中取出了 html 和 body 标签,并将文本留在了 . 现在它可以正常工作了!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句