1

我需要你的建议。我是 ajax 和 jquery 的新手。我正在使用 postgresql 9.1 /postGIS 2.0 /openlayers/geoserver 和 apache。

当我使用javascript点击地图(openlayers)时,我设法获取了一个功能的ID。

使用 ajax 我试图将此值传递给 PHP 值并执行查询。Openlayers、jquery、javascript 和 ajax 工作正常,但 php 从未获得价值。这是我的代码片段。

//this is inside openlayers init function
function selected_feature(event){
//getting the id
var sf = event.feature.fid;
var sfs = sf.split(".");
var sff = sfs[1]
//ajax
$(document).ready(function()
{
 $.post("map.php", { jas: 'sff'});
});

//the php code snippet, after openlayers
$_SESSION['blah'] = $_POST['jas']; 
$blah= $_SESSION['blah'];
echo $blah;
 $queryd='
  SELECT
   pins.p_name 
  FROM
    pins
    WHERE
    pins.p_id='.$blah;
 //fetching to fill array
 $resultd=pg_query($conn, $queryd);
 $nord=pg_num_rows($resultd);
 $d=0;
  while($arrayd=pg_fetch_array($resultd)){
      $name[$d]=$arrayd['p_name'];
    $d++;
        echo $arrayd['p_name'];
                echo $arrayd[$d];

    }

问题是 php 的回声不起作用,查询根本不起作用。我知道这个问题听起来像是重复的,但我相信是不同的,因为所有代码都在同一个文件中(名为 map.php)。另外,背景上有一些网络地图。我什至不知道是否是导致问题的网络映射程序之一。

请指教

谢谢你。

编辑我刚刚编辑了 ajax 部分。我已经用这个代替了

jQuery.post("map.php", { jas : "sff" }, function(data) {
  //  alert(data);
  });

......仍然没有运气

编辑#2

根据教程,我编辑了我的代码。所以现在我的 map.php 中有这个 jquery

jQuery.post("testone.php", { jas : sff }, function(data) {
  alert(data);
  });

而在 testone.php 这个 php 代码

<?php
  $jas = $_POST['jas'];
     print $jas;
?>

map.php 实际上会提醒数据。但是,还有一件事。如何将数据作为 PHP 值传回 map.php,这样我也可以激活查询?大多数教程都是关于提醒数据或将它们放入<div>. 我想用php。就像是

   jQuery.post("testone.php", { jas : sff }, function(data) {
    //put returned data in a php var
          });
4

1 回答 1

0

我会将您的 PHP 移动到另一个文件,然后您需要echo json_encode($name);在 jQuery 帖子的回调处理程序中处理返回的数据。

$.post('new.php',{jas:'sff'},function(data){ //do something cool with data[0] through the last index of the array });

于 2013-02-07T00:46:43.650 回答