变量值没有传入Bootstrap Modal中的mySQL语句

我通过span标签使用jQuery将变量传递给Bootstraps模式但在模式中运行PHP时遇到问题。 这些变量都是正常的,但是当我尝试运行mySQL语句时,我存储在变量中的span标记看起来没什么,即使它很好。 我给出了以下代码的示例:

HTML:

 

JS:

  $(document).ready(function () { $('.modalsend').click(function () { $('span.user-topicid').text($(this).data('topicid')); }); });  

莫代尔:

  

我的猜测是PHP语句在页面加载时运行,而不是在打开模态并将变量发送到span标记时运行。 不太确定如何解决这个问题。

使用以下方法传递多个变量已解决问题:

HTML:

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

jQuery的:

 $(document).ready(function () { $('.modalsend').click(function () { $('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + $(this).data('page')); }); }); 

有关更多详细信息,请参阅@bloodyKnucklespost

PHP仅在服务器上运行。 要使Javascript或jQuery执行PHP脚本,需要调用服务器。 GET(如链接)和POST(如表单)有两种方法。 你有两种GET和POST方式,一种方法是重新加载页面,另一种方法是XHR对象,AKA Ajax。

所以,制作一个单独的PHP文件,例如……

get_number_comments.php:

  

并将您的文档就绪function更改为:

 $(document).ready(function () { $('.modalsend').click(function () { $('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + encodeURIComponent('')); }); }); 

你的模态的内部DIV现在看起来像:

  

jQuery的load函数对服务器进行XHR调用,执行你在第一个参数中输入的文件,在这种情况下是get_number_comments.php 。 因此, get_number_comments.php获取GET变量,安全地转义它,在查询中插入它,并通过XHR对象将结果发送回页面。

(顺便说一下,由于PHP mysql_*函数显然很无效,我敦促您转换为PHP mysqli_*函数。然后您还可以使用严格的数据库安全措施。)