我想从网址获取参数。网址如下所示:
www.example.com/?v=12345
我想获取参数并查询我的mysql数据库以使用ajax获取正确的数据。
所以我在这里打电话给我:
$.ajax({
type:"POST",
url:"ajax2.php",
dataType:"json",
success:function(response){
var id = response['id'];
var url = response['url'];
var name = response['name'];
var image = response['image'];
},
error:function(response){
alert("error occurred");
}
});
如您所见,我想要获取的数据位于json数组中,并将保存在javascript变量中。
这是我的php文件:
<?php
// Connection stuff right here
$myquery = "SELECT * FROM mytable **WHERE id= **$myurlvariable**;
$result = mysql_query($myquery);
while($row = mysql_fetch_object($result))
{
$currentid = "$row->id";
$currentname = "$row->name";
$currenturl = "$row->url";
$currentimage = "$row->image";
$array = array('id'=>$currentid,'url'=>$currenturl, 'name'=>$currentname,'image'=>$currentimage);
echo json_encode($array);
}
?>
我想查询正确变量的部分是粗体。我不知道如何查询。此外,如何以正确的形式获取url参数。
有人可以帮忙吗?谢谢!
答案 0 :(得分:3)
您可以使用JavaScript获取查询字符串并将其发送到AJAX请求中。
获取查询字符串(JavaScript) -
function query_string(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
//Getting the parameter-
v = query_string('v'); // Will return '12345' if url is www.example.com/?v=12345
这需要作为AJAX调用中的数据传递。
$.ajax(
{
type: "POST",
dataType: "json",
url: "ajax2.php",
data: "v="+v,
success: function(response){
var id = response['id'];
var url = response['url'];
var name = response['name'];
var image = response['image'];
},
error: function(jqXHR,textStatus,errorThrown){
//alert(JSON.stringify(jqXHR));
//alert(textStatus);
//alert(errorThrown);
alert(JSON.stringify(jqXHR)+" "+textStatus+" "+errorThrown);
//alert("error occurred");
}
}
);
这可以在PHP表单中以$ _POST ['v']的形式访问。
if(isset($_POST['v'])){
$myurlvariable = $_POST['v'];
$myquery = "SELECT * FROM mytable WHERE id= $myurlvariable";
...
以php形式,在回显json响应之前,更改内容类型。像这样的东西 -
header("Content-Type: application/json");
echo json_encode($array);
如果存在数据库错误,则必须进行处理。 这样做 -
<?php
// Connection stuff right here
header("Content-Type: application/json");
if(isset($_POST['v'])){
$myurlvariable = $_POST['v'];
$myquery = "SELECT * FROM mytable WHERE id= $myurlvariable";
$result = mysql_query($myquery) or die(json_encode(Array("error": mysql_error()));
while($row = mysql_fetch_object($result))
{
$currentid = "$row->id";
$currentname = "$row->name";
$currenturl = "$row->url";
$currentimage = "$row->image";
$array[]= array('id'=>$currentid,'url'=>$currenturl, 'name'=>$currentname,'image'=>$currentimage);
}
echo json_encode($array);
}else{
echo json_encode(Array("error": "No POST values"));
}
?>
所以这样,如果查询没有正确执行,那么你就会知道错误到底是什么。
答案 1 :(得分:0)
没有任何错误检查,只有重要部分:
$myquery = "SELECT * FROM mytable WHERE id=" . $_POST['v'];