将Javascript字符串传递给PHP
我想把一个javascript字符串传递给php。。。就在代码后面。。在剧本里将Javascript字符串传递给PHP,php,javascript,Php,Javascript,我想把一个javascript字符串传递给php。。。就在代码后面。。在剧本里 <script type="text/javascript"> var myvar = "mytext" ; <?php echo myvar ; ?> </script> var myvar=“mytext”; 这是行不通的。 我该怎么办?PHP在服务器端执行,而javascript在客户端执行,这意味着在发送javascript代码时PHP已经执行 您可能想转而研
<script type="text/javascript">
var myvar = "mytext" ;
<?php echo myvar ; ?>
</script>
var myvar=“mytext”;
这是行不通的。
我该怎么办?PHP在服务器端执行,而javascript在客户端执行,这意味着在发送javascript代码时PHP已经执行
您可能想转而研究AJAX。您应该弄清楚客户端代码和服务器端代码之间的区别。您在php代码中引入的变量以前没有赋值,因为该变量是在客户端设置的。因此,您的代码示例本质上是错误的。如果希望客户端(javascript)上的值在服务器(php)上可用,则需要使用javascript的xmlhttprequest对象(也称为ajax) 不过,您可以用另一种方法…用javascript打印php值。这是因为脚本是在服务器端创建的,并在浏览器处理之前发送到客户端
不确定你想达到什么目的,但这可能有点帮助。当有人访问网站时,通常会发生以下情况:
http://www.yourdomain.com/some_php_page.php?myvar=mytext
使用JavaScript有几种方法可以做到这一点
var fakeImg = new Image();
fakeImg.src = 'http://www.yourdomain.com/some_php_page.php?myvar=mytext';
即使您正在请求一个图像,服务器也不知道这一点,并将通过调用PHP对其进行评估等方式处理您的请求var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
IE中存在一些关于AJAX请求的缓存响应的问题,因此请使url唯一:
var url = 'http://www.yourdomain.com/some_php_page.php?myvar=mytext&unique=whatever';
告诉您的XHR您希望它去哪里,以及您希望它如何到达那里:
xhr.open('GET', url, true);
// The "true" parameter tells it that we want this to be asynchronous
设置在收到响应时检查的方法:
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status < 400) {
success(xhr.responseText);
}
};
要记住的一些注意事项:
- 您必须自己构建
函数,以处理PHP页面将返回的字符串success
- 如果需要,可以传递该函数
,但这对我来说通常只是个麻烦xhr.responseXML
- 用我的方法使用
会(我相信)在IE的某些版本中引入内存泄漏onreadystatechange
你的例子有点令人困惑:
<script type="text/javascript">
var myvar = "mytext" ;
<?php echo myvar ; ?>
</script>
var myvar=“mytext”;
因为如果我这样做:
<script type="text/javascript">
<?php $myvar = "mytext"; ?>
var myvar = "<?php echo $myvar; ?>" ;
</script>
var myvar=“”;
然后,它将
myvar
的JavaScript值设置为$myvar
的PHP值,使两者保持不变。如果你想做其他事情,你需要扩展你的例子。好吧。。。我想在没有ajax的情况下完成它。。。但是如何使用ajax呢?代码示例?@mr.bio不可能在PHP中使用JavaScript值(在同一页面上),因为PHP已经执行。您需要发出另一个HTTP请求,显然您不了解PHP和JavaScript、服务器端和客户端之间的区别。我建议你在编写任何其他代码之前仔细阅读一下。。
<script type="text/javascript">
<?php $myvar = "mytext"; ?>
var myvar = "<?php echo $myvar; ?>" ;
</script>