我需要分离从服务器获得的两个变量,并使用$ .post方法。但是当我这样做时,我得到了这种方法的组合混合值。这是代码
$(".spot_me").click(function()
{
var idea = $(this).attr("id");
var idea1 = $(this).attr("data");
alert(idea);
alert(idea1);
$.post('spot_me.php', 'val=' + idea + '&tim=' + idea1, function (data)
{
alert(data);
});
});
这里var id是一个用户ID。我希望得到该用户在数据库中存储的坐标。我的abc.php的php代码是
<?php
session_start();
$value = $_POST['val'];
$value1 = $_POST['tim'];
$con=mysqli_connect("localhost","root","******","anurag");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result2 = mysqli_query($con,"SELECT latitude,longitude FROM notifications WHERE uid='$value' AND time='$value1' ");
if(!$result2)
{
echo "Error in query";
}
else
{
$row = mysqli_fetch_array($result2);
$lat = $row['latitude'];
$lon = $row['longitude'];
echo $lat;
echo $lon;
}
&GT;
现在我想在参数数据中的jquery $ .post方法中单独获取此lat和lon值。我怎样才能分别获得这些值并且“我希望以$ .POST方法将它们存储在两个不同的变量中”我该怎么做呢
答案 0 :(得分:1)
您将使用JSON在语言之间进行通信。
您的PHP会将数组转换为JSON:
else
{
$row = mysqli_fetch_array($result2);
echo json_encode($row);
}
并且您的javascript会将data
视为对象,因为您告诉.post()
函数需要json
var post_str = 'val=' + idea + '&tim=' + idea1;
$.post('spot_me.php', post_str, function (data)
{
alert(data.latitude);
alert(data.longitude);
}, 'json');
答案 1 :(得分:0)
答案 2 :(得分:0)
在PHP
$row = mysqli_fetch_array($result2);
echo json_encode($row);
在jQuery
$.post('spot_me.php', 'val=' + idea + '&tim=' + idea1, function (data)
{
var response = jQuery.parseJSON(data);
alert(response.latitude);
alert(response.longitude);
});
这只是一个指示哦如何做,而不是测试。
答案 3 :(得分:0)
你可以把输出作为JSon返回,然后在Javascript中解析那个JSON。
在PHP文件中这样做:(而不是返回两个变量)
echo json_encode(array('latitude' => $row['latitude'],'longitude'=> $row['longitude']));
Response will be like this (test values use)
{"latitude":123,"longitude":456}
在你的Jquery Ajax代码中你返回响应使用JSON解析方法
var obj = $.parseJSON(data );
alert( obj.latitude)
alert( obj.longitude)
答案 4 :(得分:0)
//来自服务器
$row = mysqli_fetch_array($result2);
return json_encode($row);
//并在客户端
var dataasjson = $.parseJSON(data);
$.each(dataasjson, function(index, element) {
element.name //this is your label i.e databse field name as key
dataasjson[element.name] //this is your long/lat value
});