提问人:bbrone 提问时间:9/10/2023 最后编辑:Pippobbrone 更新时间:9/11/2023 访问量:58
JQuery Ajax - 代码被“<”切断
JQuery Ajax - Code Getting Cut Off by '<'
问:
刚开始编码,在使用 Ajax 时遇到麻烦。我正在尝试根据我的HTML表单中的参数从MySQL返回一个结果表(这只是一个仅供学习的示例,最终目的会有所不同)。如果单独执行,PHP/MySQL可以工作,但Ajax返回的是PHP代码,而不是结果。它似乎在MySQL代码中的“<”处被切断,并将PHP作为文本返回而不是执行它。正如我提到的,我是新手,所以请随时指出我可以改进的任何其他方面。谢谢!
HTML/JQuery 代码:
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<body>
<h1> AJAX TEST </h1>
<form id="coordinatesearch">
<label for="maxLatInput"> Search Coordinates: <label><br>
<input
id="maxLatInput"
type="decimal"
placeholder="Max Latitude">
<input
id="minLatInput"
type="decimal"
placeholder="Min Latitude">
<input
id="maxLongInput"
type="decimal"
placeholder="Max Longitude">
<input
id="minLongInput"
type="decimal"
placeholder="Min Longitude">
</form>
<button
type="button"
onClick= filterCoordinates()>
Submit
</button>
</form>
</body>
<script>
function filterCoordinates() {
var minLatitude = document.getElementById("minLatInput").innerHTML;
var maxLatitude = document.getElementById("maxLatInput").innerHTML;
var minLongitude = document.getElementById("minLongInput").innerHTML;
var maxLongitude = document.getElementById("maxLongInput").innerHTML;
$.ajax({
type: "GET",
url: "php_mysql_table_result.php",
async: false,
data: {"minLatitude": minLatitude,
"maxLatitude": maxLatitude,
"minLongitude": minLongitude,
"maxLongitude": maxLongitude
},
success: function(data) {
document.getElementById("ajaxresults").innerHTML = data;
},
error: "ERROR"
})
}
</script>
<p>
Results: <br></p>
<div id="ajaxresults">Results Here</div>
</html>
PHP代码:
<?php
// Include Config File
require_once "config.php";
// SQL query
$sql = "SELECT registration_number, entity_name, latitude, longitude, structure_type, height_of_structure, status_code
FROM database
WHERE latitude >= :minlatitude AND
latitude <= :maxlatitude AND
longitude >= :minlongitude AND
longitude <= :maxlongitude;";
$sth = $conn->prepare($sql);
$sth->bindValue(':minlatitude', $minlatitude, PDO::PARAM_STR);
$sth->bindValue(':maxlatitude', $maxlatitude, PDO::PARAM_STR);
$sth->bindValue(':minlongitude', $minlongitude, PDO::PARAM_STR);
$sth->bindValue(':maxlongitude', $maxlongitude, PDO::PARAM_STR);
# Try query or error
$sth->execute();
if (!$sth) {
echo 'An SQL error occured.\n';
exit;
}
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
echo "<table>
<th>Registration Number</th>
<th>Entity Name</th>
<th>Latitude</th>
<th>Longitude</th>
<th>Structure Type</th>
<th>Structure Height (ft)</th>
<th>Status Code</th>";
foreach($data as $row) {
echo "<tr>
<td>" . $row['registration_number'] . "</td>
<td>" . $row['entity_name'] . "</td>
<td>" . $row['latitude'] . "</td>
<td>" . $row['longitude'] . "</td>
<td>" . $row['structure_type'] . "</td>
<td>" . $row['height_of_structure'] . "</td>
<td>" . $row['status_code'] . "</td>
</tr>";
}
echo "</table>";
?>
阿贾克斯的当前结果:
= :minlatitude AND 纬度 <= :maxlatitude AND 经度 >= :minlongitude AND 经度 <= :maxlongitude;“;$sth = $conn->准备($sql);$sth->bindValue(':minlatitude', $minlatitude, PDO::P ARAM_STR);$sth->bindValue(':maxlatitude', $maxlatitude, PDO::P ARAM_STR);$sth->bindValue(':minlongitude', $minlongitude, PDO::P ARAM_STR);$sth->bindValue(':maxlongitude', $maxlongitude, PDO::P ARAM_STR);# 尝试查询或出错 $sth->execute();if (!$sth) { echo '发生 SQL 错误。\n'; exit; } $data = $sth->fetchAll(PDO::FETCH_ASSOC);回声“”;foreach($data as $row) { echo “”;回声” 注册号 实体名称 纬度 经度 结构类型 结构高度(英尺) 状态代码 " .$row['registration_number'] ." " .$row['entity_name'] ." " .$row['纬度'] ." " .$row['经度'] ." " .$row['structure_type'] ." " .$row['height_of_structure'] ." " .$row['status_code'] ." "; ?>
答: 暂无答案
评论