Php 在mysql中使用js变量

Php 在mysql中使用js变量,php,javascript,jquery,variables,Php,Javascript,Jquery,Variables,好的,我这里有个问题。我正在尝试获取一个用于sql查询的JS变量。现在我知道这是不可能的,所以我使用jquery传递变量,并使用get方法将其分配给php中的变量。但是php总是在JS之前加载,所以sql查询不会更新。下面是代码: var monthS = calenderMonths[monthNow]; $.get('load2.php', {location:monthS} ); 这是在我的JS文件中的一个函数,该函数正在HTML中加载 这是我的php: $monthS = $_GET[

好的,我这里有个问题。我正在尝试获取一个用于sql查询的JS变量。现在我知道这是不可能的,所以我使用jquery传递变量,并使用get方法将其分配给php中的变量。但是php总是在JS之前加载,所以sql查询不会更新。下面是代码:

var monthS = calenderMonths[monthNow];
$.get('load2.php', {location:monthS} );
这是在我的JS文件中的一个函数,该函数正在HTML中加载

这是我的php:

$monthS = $_GET['location'];

echo "alert($monthS);";
// Connect to MySQL
if ( !( $database = mysql_connect( "localhost",
  "root", "" ) ) )                      
  die( "Could not connect to database </body></html>" );

// open Events database
if ( !mysql_select_db( "Events", $database ) )
die( "Could not open Events database </body></html>" );

$result = mysql_query("SELECT * FROM posted_events WHERE Month_ = '$monthS' ") 
  or die ('Error updating database because: '.mysql_error());
$monthS=$\u GET['location'];
回声“警报($monthS);”;
//连接到MySQL
如果(!($database=mysql\u connect(“localhost”,
“根”,“根”)
die(“无法连接到数据库”);
//开放事件数据库
如果(!mysql_select_db(“事件”,“$database))
die(“无法打开事件数据库”);
$result=mysql\u查询(“从发布的\u事件中选择*,其中月份为“$monthS”)
或者die('更新数据库时出错,因为:'.mysql_Error());
我向$monthS发出警报,以查看它是否已通过,但最初警报为空,但在单击“确定”后(如3秒),另一个警报框会显示该变量。所以我相信PHP是在变量传递之前加载的。我能解决这个问题吗?谢谢

您应该等待.get()完成,然后再继续执行脚本的其余部分(如果它与您的脚本一样依赖于响应)


PHP在变量到达之前没有加载,PHP本身甚至在您发送请求之前都不会被调用。这看起来像是Ajax的作业,所以这应该在我的PHP中,而不是js中?不,这是Javascript中的Ajax调用,您基本上不理解$.get('load2.PHP',{location:monthS});正确地编写代码,$.get是一个速记Ajax调用,它异步运行,因此您的脚本将在收到响应之前继续运行。在本例中,您可以将需要从请求中接收的变量的代码放入.done()函数中,这样它只在您从php页面(包含您的变量)收到响应后执行。在这里读更多:哦,我想我现在明白了。但是我在脚本中没有其他代码,我想要的一切都是在php中完成的。但是变量仍然没有通过你说3秒钟后会有一个警报提示变量?是的。但是sql仍然看不到它在数据库中比较了什么,因为查询是在我推测之前加载的
$.get('load2.php', {location:monthS} )
   .done(function(data) {
   alert(data);
   //rest of your code 
 });