将javascript变量传递给PHP

我引用这个问题: 使用Jquery对PHP的Javascript值

我尝试使用名为a.php的文件中的以下代码:

  var ms = 9000; function test() { $.ajax({ url: "a.php", data: {"test":ms}, type: 'get', success: function(output) { $('#testing').html(output); } }); } test();   

然后我将浏览器指向http://localhost/learn/a.php,但收到错误消息并且$ ms的值未按预期显示:

(!)注意:未定义索引:在第17行的C:\ wamp \ www \ learn \ a.php中测试

$ ms = $ _GET [“test”]; < – a.php中的第17行

我在下面尝试了另一个更简单的代码(b.php):

   var ms = 3000; $.get("http://localhost/learn/b.php", { "test": ms } );   

然后我将浏览器指向http://localhost/learn/b.php,但得到了类似的错误消息,并且没有显示$ ms的值:

(!)注意:未定义的索引:在第7行的C:\ wamp \ www \ learn \ b.php中测试下面是第7行的代码$ ms = $ _GET [“test”];

请指教。 谢谢。

好的,看看这段代码:

    

我假设这都在一个文件中。 您有两种不同语言的代码,可以在不同的地方进行解释。 首先,您在顶部有Javascript。 这不是您的服务器解释的。 它就像HTML一样返回到浏览器。

后来,你有一块PHP。 我们还在服务器上,还没有向浏览器发送任何内容。 你找一个$_GET['test']值。 您的URL是http://localhost/learn/b.php :显然该URL中没有GET值,因此出错。

当您的代码发送到浏览器时,浏览器会看到$.get行并执行AJAX请求。 这是另一个 HTTP请求。 它不会修改原始请求,因此不会减轻您上面收到的错误。 使用此请求,您的浏览器将向服务器发送http://localhost/learn/b.php?test=3000 ,并且不会出现错误。 但是,因为您没有对响应做任何事情,所以您没有看到第二个请求的影响。

也许使用此URL,您需要在URL中精确GET参数“test”

HTTP://localhost/learn/a.php测试=打招呼

当您使用XHR发出请求时,您不会只是使用新请求访问该页面,并且值仍然存在(HTTP是无状态的 )。

你需要在回调中使用jQuery做一些事情。

看起来你应该把你的Javascript和PHP放在哪里令人困惑。 您的PHP文件应该只具有接收和使用Javascript变量的逻辑,而不是任何Javascript本身。 所以基本上你需要拆分这个逻辑。

在您的HTML文件中:

 

在你的PHP文件(a.php)中;

 <?PHP
 $ ms = $ _GET ['ms'];
 echo'我得到的价值:'。  $毫秒;
 ?>