json_encode在我的外部javascript中没有显示任何内容

时间:2014-07-11 15:57:19

标签: javascript php html mysql

我得到了我的php页面,这是一个来自mysql的fetchong数组我希望用json_encode将该数组移动到javascript这里是我的php页面

 echo "<script type='text/javascript' src='javascript1.js'></script>";

 $result = mysqli_query($con,"SELECT l_longitude,l_latitude FROM register_complain");



 echo "<table border='1'>
 <tr>
  <th>Latitude</th>
 <th>Longitude</th>
 </tr>";

    while($row = mysqli_fetch_array($result)) {
    echo "<tr>";
    echo "<td>" . $row['l_longitude'] . "</td>";
    echo "<td>
    " . $row['l_latitude'] . "</td>";
    echo "</tr>";
    echo $ab = $row['l_latitude'];

    echo $ab2 = $row['l_longitude'];
     echo json_encode( $ab );
    echo "</table>";
 header('Location:http://localhost/cca/View_Map.html');  
mysqli_close($con);

我的外部javascript1.js是

  var db_array = <?php echo json_encode($ab); ?>;
  alert(db_array);

但是当我在我的javascript页面中使用var db_array时,它不会显示带值的警告消息

3 个答案:

答案 0 :(得分:0)

尝试在你的php页面中首先将$ ab设置为javascript变量值然后包含你的js

echo "<script>var db_array = '". json_encode($ab)."';</script>
<script type='text/javascript' src='javascript1.js'></script>";

并在你的js文件中发出警报

答案 1 :(得分:0)

你想要做的是创建一个PHP脚本,把你的javascript代码放在那里,你需要动态部分放置你的PHP代码,或在那里回应你的东西(处理应该在输出任何东西之前)

renderJS.php

<?php
    //code code code
    $data = someFunctionThatCreatesData();
    //more code code code
    //Makes it so browsers know this is actually a js file
    header('Content-Type: text/javascript');
?>
//Begin JS
var db_array = <?php echo json_encode($data); ?>;
alert(db_array);

然后在你的html点你的脚本标记src到php文件

<script type="text/javascript" src="renderJS.php"></script>

如果您的处理与html代码在同一个文件中,那么就像Rakesh Sharma在他的答案中显示的那样,然后输出<script>标签,然后输出您的js代码,然后输出相同的</script>标签文件(通常用于回显你的头标记)

答案 2 :(得分:0)

我自己做了很多类似的事情,但我反过来做了。我倾向于使用jQuery,这样可以让我的生活更轻松。以下是我通常会尝试完成的工作:

PHP脚本

<?php
//...
//... get the database results into $result array
//...
// output results as JSON
header("Content-Type: application/json");
print json_encode($result);
exit();

Javascript(jQuery)

$.getJSON('path/to/above/file.php', function(data) {        
    // alert(data) will only show [Object object]
    // as with the correct header set it will return
    // a Javascript Object/Array
    console.log(data);
});

当Javascript代码运行时,它将启动对PHP文件的AJAX请求,并返回编码数据。我希望这会有所帮助。