Php jquery$.get函数有问题
我对jquery$.get函数有问题。 我试图从PHP文件中获取数据,以检查特定用户是否有订阅,以及其他用户是否将其记录在忽略列表中 使用这个jquery代码,我只能使用PHP文件从MySql获取这两个数据中的一个 jquery代码是:Php jquery$.get函数有问题,php,jquery,Php,Jquery,我对jquery$.get函数有问题。 我试图从PHP文件中获取数据,以检查特定用户是否有订阅,以及其他用户是否将其记录在忽略列表中 使用这个jquery代码,我只能使用PHP文件从MySql获取这两个数据中的一个 jquery代码是: $(document).ready(function(){ $.get("getdata.php", function(returned_data) { if(returned_data === "1") { $
$(document).ready(function(){
$.get("getdata.php", function(returned_data) {
if(returned_data === "1") {
$("div#wall").html('user has no subscription');
$("#message_wall").attr("disabled", "disabled");
return false;
}
});
});
PHP文件具有MySQL查询,该页面如下所示:
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo "1";
} else {
echo "5";
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo "2";
}
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo '{ "resultCode":1, "description":"message 1 to be displayed to user" }';
} else {
echo '{ "resultCode":5, "description":"message 5 to be displayed to user" }';
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo '{ "resultCode":2, "description":"message 2 to be displayed to user" }';
}
[ { "resultCode":1, "description":"msg" }, { "resultCode":2, "description":"msg" }, ... ]
对于每个PHP echo响应代码(对于echo“1”、echo“2”和echo“5”),我需要从jquery$.get函数中分离.attr()和.html()
如何使用Jquery$.get实现这一点?如果我正确理解了您的问题,那么您所要求的就是使用不同的javascript来执行来自服务器的不同响应。如果是这样的话,您现在使用的是
success
回调中的If-elseif
。如果我正确理解您的问题,您所要做的就是使用不同的javascript来执行服务器的不同响应。如果是这样,您现在使用的success
回调中的If-elseif
。正如Teja所写,您可以在JavaScript代码中添加更多If-else
块来处理不同的返回值
但更重要的是,如果您需要返回一条以上的信息,您确实应该在服务器端将其编码为(例如)JSON。有内置的PHP库和JSON.org上的JSON javascript库。正如Teja所写,您可以在javascript代码中添加更多的
if-else
块来处理不同的返回值
但更重要的是,如果您需要返回一条以上的信息,您确实应该在服务器端将其编码为(例如)JSON。有内置的PHP库和JSON.org上的JSON javascript库。您希望
$.getJSON
允许多个返回值
看
然后将其输出为类似于JSON的PHP格式
{ "subscribed": true, "ignored": false }
然后您的javascript可以如下所示
$.get("getdata.php",
function(returned_data)
{
if(returned_data.subscribed){
...
}
if(returned_data.ignored){
...
}
});
您希望
$.getJSON
允许多个返回值
看
然后将其输出为类似于JSON的PHP格式
{ "subscribed": true, "ignored": false }
然后您的javascript可以如下所示
$.get("getdata.php",
function(returned_data)
{
if(returned_data.subscribed){
...
}
if(returned_data.ignored){
...
}
});
正如Jake所说,使用$.getJSON更好。jQuery内置了对从web服务器接收JSON作为响应的支持,因此对于这样一个简单的任务,我们不需要在javascript端使用任何额外的JSON库。同样在PHP方面,我们可以为这个简单的场景使用手动JSON构建JSON响应(发送到javascript) PHP代码如下所示:
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo "1";
} else {
echo "5";
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo "2";
}
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo '{ "resultCode":1, "description":"message 1 to be displayed to user" }';
} else {
echo '{ "resultCode":5, "description":"message 5 to be displayed to user" }';
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo '{ "resultCode":2, "description":"message 2 to be displayed to user" }';
}
[ { "resultCode":1, "description":"msg" }, { "resultCode":2, "description":"msg" }, ... ]
然后可以将javascript更新为以下内容:
$(document).ready(function(){
$.getJSON("getdata.php", function(returned_data) {
// returned_data is now a javascript object with 2 properties:
// returned_data.resultCode
// returned_date.message
// if the user has a valid subscription
if (returned_data.statusCode === 5) {
$("#message_wall").removeAttr("disabled");
return true;
}
// if the user has an invalid subscription, show the message returned from the PHP
else {
$("div#wall").html(returned_data.message);
$("#message_wall").attr("disabled", "disabled");
return false;
}
});
});
此外,如果您需要能够将多个响应发送回javascript,则可以将JSON响应对象构建到javascript数组中,以便PHP代码的响应如下所示:
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo "1";
} else {
echo "5";
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo "2";
}
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo '{ "resultCode":1, "description":"message 1 to be displayed to user" }';
} else {
echo '{ "resultCode":5, "description":"message 5 to be displayed to user" }';
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo '{ "resultCode":2, "description":"message 2 to be displayed to user" }';
}
[ { "resultCode":1, "description":"msg" }, { "resultCode":2, "description":"msg" }, ... ]
然后,JavaScript将在返回的_数据参数中接收一个数组,该数组可以使用内置的$.each()函数进行迭代
有关JSON的更多信息,请参见,如Jake所说,使用$.getJSON更好。jQuery内置了对从web服务器接收JSON作为响应的支持,因此对于这样一个简单的任务,我们不需要在javascript端使用任何额外的JSON库。同样在PHP方面,我们可以为这个简单的场景使用手动JSON构建JSON响应(发送到javascript) PHP代码如下所示:
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo "1";
} else {
echo "5";
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo "2";
}
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo '{ "resultCode":1, "description":"message 1 to be displayed to user" }';
} else {
echo '{ "resultCode":5, "description":"message 5 to be displayed to user" }';
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo '{ "resultCode":2, "description":"message 2 to be displayed to user" }';
}
[ { "resultCode":1, "description":"msg" }, { "resultCode":2, "description":"msg" }, ... ]
然后可以将javascript更新为以下内容:
$(document).ready(function(){
$.getJSON("getdata.php", function(returned_data) {
// returned_data is now a javascript object with 2 properties:
// returned_data.resultCode
// returned_date.message
// if the user has a valid subscription
if (returned_data.statusCode === 5) {
$("#message_wall").removeAttr("disabled");
return true;
}
// if the user has an invalid subscription, show the message returned from the PHP
else {
$("div#wall").html(returned_data.message);
$("#message_wall").attr("disabled", "disabled");
return false;
}
});
});
此外,如果您需要能够将多个响应发送回javascript,则可以将JSON响应对象构建到javascript数组中,以便PHP代码的响应如下所示:
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo "1";
} else {
echo "5";
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo "2";
}
$query = mysql_query("SELECT * FROM subscription WHERE id=$ipr");
$result = mysql_fetch_assoc($query);
if (time() > $result['date']) {
echo '{ "resultCode":1, "description":"message 1 to be displayed to user" }';
} else {
echo '{ "resultCode":5, "description":"message 5 to be displayed to user" }';
}
$res = mysql_query("SELECT * FROM ignor WHERE migid=$ipr AND igid=$id") or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows >= "1") {
echo '{ "resultCode":2, "description":"message 2 to be displayed to user" }';
}
[ { "resultCode":1, "description":"msg" }, { "resultCode":2, "description":"msg" }, ... ]
然后,JavaScript将在返回的_数据参数中接收一个数组,该数组可以使用内置的$.each()函数进行迭代
有关JSON的更多信息,请参见您有SQL注入漏洞。您有SQL注入漏洞。谢谢Rouan!是否可以将*.php文件的名称隐藏在$.getJSON(“getdata.php”)中,…?因为jquery代码将在页面的源代码中可见,我不想让一些恶意访问者尝试使用它。嗯,这是很棘手的,因为几乎所有的解决方案都可以通过聪明的人查看源代码来逆转。您可以尝试base64编码javascript字符串或在你可以创建一个PHP页面,该页面采用某种类型的乱码字符串或散列,并根据提供的散列重定向到getdata.PHP。然后在$.GetJSonTanks Rouan中调用类似于“securedPage?pageHash=aC7bz122;”的内容。可能吗e将*.php文件的名称隐藏在$.getJSON(“getdata.php”)中,…?因为jquery代码将在页面的源代码中可见,我不想让一些恶意访问者尝试使用它。嗯,这是很棘手的,因为几乎所有的解决方案都可以通过聪明的人查看源代码来逆转。您可以尝试base64编码javascript字符串或在铃声,但这只会丢弃普通用户,因为它们很容易识别和反转。您可以创建一个PHP页面,该页面采用乱码字符串或某种哈希,并基于提供的哈希重定向到getdata.PHP。然后在$.getJSON中调用类似于“securedPage?pageHash=aC7bz122;”的内容