使用.load()传递多个变量给URL


Passing Multiple Variables to URL using .load()

我试图在jQuery中使用以下语句向PHP发送多个变量:

jQuery:

$(document).ready(function () {
    $('.modalsend').click(function () {
        $('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + '<?=$_GET['page']?>');
    });
});
如果我在PHP文件中传递一个变量,就可以正常工作,像这样: jQuery:

$('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid'))

但是,当我尝试传递&page=时,它无法向PHP文件传递任何内容,该文件具有以下变量以获取URL:

PHP (get_number_comments.php):

$numberid = mysql_real_escape_string($_GET['topicid']);
$page = mysql_real_escape_string($_GET['page']);

我认为这可能是jQuery中附加&page=标记的问题,但不确定是什么原因导致的。注意,page是在第一个jQuery函数的页面的URL中。

注意:问题已经解决,最好先得到URL ($page = mysql_real_escape_string($_GET['page']);),并发送$page变量在一个数据属性,就像topicid -请参考变量值不传递到mySQL语句在Bootstrap模式的解决方案的进一步细节

我相信Amin已经回答了你的问题,但我只是想添加,根据.load()文档,你可以传递你的数据作为第二个参数,它应该处理编码。所以你可以这样做:

var pageVal= <?=$_GET['page']?>;
var data = { "topicid": $(this).data('topicid'), "page": pageVal };
$('span.user-topicid').load('get_number_comments.php', data);

您的问题在这部分'<?=$_GET['page']?>'

你不能在位置传递PHP代码,你要么需要发送变量:

$('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + page);

或将代码存储在变量中,然后发送:

 var pageVal='<?=$_GET["'+page+'"]?>';
 $('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + pageVal);