我的view.php页面来自另一个页面,通过获取唯一的ID(序列号)而来。现在,在我的view.php页面中,我想显示指定的序列,没有来自Charts.php的数据。我自己完成了代码。它正在获取数据。但不是那个选择的序列号。我该怎么解决
view.php
<?php
if(isset($_GET['serial'])){
$serial = $_GET['serial'];
?>
<html>
<div class="container" id="output"></div>
</html>
<script>
$(document).ready(function(){
function getData(){
$.ajax({
type: 'POST',
url: 'charts.php',
success: function(data){
$('#output').html(data);
}
});
}
getData();
setInterval(function () {
getData();
}, 1000); // it will refresh your data every 1 sec
});
</script>
charts.php
<?php
$sql = mysqli_query($con,"SELECT * FROM criminal WHERE rand = '$serial'");
while($row = mysqli_fetch_assoc($sql)){
?>
请帮助。
答案 0 :(得分:2)
}
),请关闭第一个data: {serial: "echo with php the variable"},
)$_POST['serial']
)。答案 1 :(得分:2)
您想将$ serial变量放在URL中。这称为查询字符串。
$(function() {
function getData(){
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'charts.php?serial=<?= $serial?>', //<-- RIGHT HERE
success: function(data){
$('#output').html(data);
}
});
}
})
然后,您将获取刚从ajax发送的数据。它看起来像您的第一个GET变量。您将在查询中使用该变量。
在您的php中:
<?php
$your_variable = $_GET['serial'];
$sql = mysqli_query($con,"SELECT * FROM criminal WHERE rand = '$your_variable'");
while($row = mysqli_fetch_assoc($sql)){
$variable_to_send = $row['serial']; //<--- Whatever your column name is
}
echo json_encode($variable_to_send);
?>
PDO版本 正如@JayBlanchard所建议的那样,强烈建议您对PDO进行一些研究。更安全。
我给你一个PDO示例:
$serial = $_GET['serial']; //The variable you're sending over from view.php
$hostname = 'your_hostname';
$username = 'your_username';
$password = 'your_passwd';
$dbname = 'your_db_name';
$pdo = new PDO("mysql:host=$hostname;$dbname=$dbname", $username, $password); //Create a new PDO object
$stmt = $pdo->prepare("SELECT * FROM criminal WHERE rand = :rand"); //prepare the query for execution
$stmt->bindValue(':rand', $serial); //bind your variable to your query
$stmt->execute(); //Run it
$result = $stmt->fetchColumn(); //Get a single column. No while loop.
echo json_encode($result); //Echo it back to your ajax function
我对照自己的数据库对此进行了测试,它在屏幕上显示的结果没有错误(当然使用了我自己的值)。