发布到php文件,并使用javascript

时间:2017-05-04 19:28:52

标签: javascript php ajax phonegap

所以我有一个php文件,它以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");
                    }
                }
            });

    });

所以基本上我拥有数据库中的所有项目选择(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)

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

1 个答案:

答案 0 :(得分:1)

  

在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));
?>
  

在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");
                    }
                }
        });
    });