Post 到 php 文件,并使用 javascript 检索数据

Post to php file, and retrieve data with javascript

所以我有一个 php 文件,它打印 table 中以 JSON 格式编码的数据。

这是 php 文件:

<?php
include "db.php";
 $id=$_POST['id'];
$data=array();
$q=mysqli_query($con,"select * from `sitios` where `id_sitio`='$id'");

while ($row=mysqli_fetch_object($q)){
 $data[]=$row;
}

if($q)
 echo "success";
 else
 echo "error";
 }

echo json_encode($data);
?>

这是 javascript 脚本:

$(document).ready(function() {
        var id = decodeURI(getUrlVars()["id"]);
         var dataString = "id=" + id;
        $.ajax({
                type: "POST",
                url: "http://pedrofidalgo.pt/bilapoint/listar_sitio_single.php",
                data: dataString,
                crossDomain: true,
                cache: false,
                success: function(data) {
                    if (data == "success") {
                                    $.getJSON(url, function(result) {
                                        console.log(result);
                                        $.each(result, function(i, field) {
                                            var id = field.id_sitio;
                                            var nome = field.nome;
                                            var descricao = field.descricao;
                                            var img = field.img;
                                            var morada = field.morada;
                                            var coordenada_x = field.coordenada_x;
                                            var coordenada_y = field.coordenada_y;
                                            document.getElementById("titulo").innerHTML =  nome;
                                            document.getElementById("desc").innerHTML =  descricao;
                                            document.getElementById("morada").innerHTML =  morada;
                                                }); 
                                            });
                    } else if (data == "error") {
                        alert("error");
                    }
                }
            });

    });

所以基本上我有数据库 select (list_all.php) 中的所有项目,然后当我单击单个项目时,该项目的 ID 传递到 URL,我在另一端用 javascript 检索它。我不使用 GET,因为这是与 phonegapp 一起使用的,所以我使用一个名为 getURI.js.

的 .js 文件

首先,该函数获取传递的 ID。然后它发布到 PHP 文件,PHP 文件将获取 ID,并在数据库中查询该单个项目。成功了,我想将所有数据存储在变量上。但出于某种原因,我在控制台上收到一条错误消息

POST http://192.168.1.241:3000/proxy/http%3A%2F%2Fpedrofidalgo.pt%2Fbilapoint%2Flistar_sitio_single.php 500 (Internal Server Error)

服务器正在正确响应,因为应用程序上的其他脚本正在运行。

In PHP

<?php
    include "db.php";
    $id=$_POST['id'];
    $data=array();
    $q=mysqli_query($con,"select * from `sitios` where `id_sitio`='$id'");

    while ($row=mysqli_fetch_object($q)){
      $data[]=$row;
    }

    if($q)
      echo json_encode(array('status' => true, 'data' => $data));
    else
      echo json_encode(array('status' => false, 'data' => $data));
?>

In Jquery

$(document).ready(function() {
        var id = decodeURI(getUrlVars()["id"]);
        var dataString = "id=" + id;
        $.ajax({
                type: "POST",
                url: "http://pedrofidalgo.pt/bilapoint/listar_sitio_single.php",
                data: dataString,
                crossDomain: true,
                cache: false,
                success: function(data) {
                    data = JSON.parse(data);
                    if (data['status']) {
                         $.each(data['data'], function(i, field) {
                            var id = field.id_sitio;
                            var nome = field.nome;
                            var descricao = field.descricao;
                            var img = field.img;
                            var morada = field.morada;
                            var coordenada_x = field.coordenada_x;
                            var coordenada_y = field.coordenada_y;
                            document.getElementById("titulo").innerHTML =  nome;
                            document.getElementById("desc").innerHTML =  descricao;
                            document.getElementById("morada").innerHTML =  morada;
                        });
                    } else {
                        alert("error");
                    }
                }
        });
    });