我正在构建一个传单web应用程序,它存储分配给地理位置的消息。
我通过使用以下命令将数据从javascript发送到php,一次添加一行数据:
$name = mysqli_real_escape_string($conn, $_POST['NAME']);
$latitude = mysqli_real_escape_string($conn, $_POST['LATITUDE']);
$longitude = mysqli_real_escape_string($conn, $_POST['LONGITUDE']);
$message = mysqli_real_escape_string($conn, $_POST['MESSAGE']);
$sql = "INSERT INTO geoData (NAME,LATITUDE,LONGITUDE,MESSAGE)
VALUES ('$name', '$latitude', '$longitude', '$message')";
我使用php将数据返回到javascript,使用:
$conn = mysqli_connect($dbServername,$dbUsername, $dbPassword, $dbName);
if(! $conn ){
die('Could not connect: ' . mysqli_error());
}
$sql = 'SELECT * FROM geoData';
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
} else {
echo "0 results";
}
mysqli_close($conn);
<script type="text/javascript">
var data = JSON.parse( '<?php echo json_encode($rows); ?> ' );
</script>
除非消息中有特殊字符,如撇号,例如“dave's dogs's bone”,否则这种方法很有效。这会产生一个错误
使用php和javascript的应用程序的最佳实践是什么。我想我需要一些方法来编码javascript可以解码和显示的特殊字符。
错误出现在:uncaught syntaxerror:missing)参数列表之后
<script type="text/javascript">
var data = JSON.parse( '[{"NAME":"The Kennel","LATITUDE":"50.7599143982","LONGITUDE":"-1.3100980520","MESSAGE","Dave's Dog's Bone"}] ' );
</script>
非常感谢
2条答案
按热度按时间8dtrkrch1#
通过在json中添加'。如果要检查,请使用以下选项:
如果你想在主代码中纠正这一点
str.replace(/'/g, '"')
对于var数据,在将其解析为json之前。8mmmxcuj2#
问题是你的
JSON.parse()
在这种情况下根本不需要。更改:
到