Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery$.get函数有问题_Php_Jquery - Fatal编程技术网

Php jquery$.get函数有问题

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") { $

我对jquery$.get函数有问题。 我试图从PHP文件中获取数据,以检查特定用户是否有订阅,以及其他用户是否将其记录在忽略列表中

使用这个jquery代码,我只能使用PHP文件从MySql获取这两个数据中的一个

jquery代码是:

$(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;”的内容