-3

要将 javascript 变量发送到 php 变量,我们必须使用 POST 或 Ajax。

下面的代码在不使用 POST、Get 或 Ajax 方法的情况下将 javascript 变量转换为 php 变量。
当我回显 php 变量时,它给出了正确的值,所以我假设 javascript 值被分配给 php 变量。

但是作为从服务器端处理的 php 脚本,为什么在 onClick 函数上将 js 变量分配给 php 变量?



让它成为。Js 变量现在分配给 php 变量。它正在显示适当的价值。但是为什么php变量的比较不起作用?

演示:http: //ibence.com/jstophp.php

<script>
function jstophp(){

var javavar=document.getElementById("text").value;  
document.getElementById("rslt").innerHTML="<?php 

$phpvar='"+javavar+"'; 
echo 'Converted from js variable to php variable:'.$phpvar;


if($phpvar=='a'){
    echo '<br>You have typed letter a';
}

else{
    echo '<br>If you have not typed letter a, this program is working according to logic. but if you have entered letter a, why this message is displaying?';
}

?>";
}

</script> 
<body>

<div id="rslt"></div>

<input type="text" id="text" />
<button onClick="jstophp()" >Convert js to php</button>

</body>
4

2 回答 2

3

不,它没有。它不会将 PHP 变量分配给从文本字段读取的字符串。它只是为其分配一个文字值,"+javavar+"然后将其显示到您的 JavaScript 代码中。因此,您实际上是在显示一个名为javavar.

看看你的脚本在 PHP 处理后的样子:

<script>
function jstophp(){

var javavar=document.getElementById("text").value;  
document.getElementById("rslt").innerHTML="Converted from js variable to php variable:"+javavar+"<br>If you have not typed letter a, this program is working according to logic. but if you have entered letter a, why this message is displaying?";
}

</script> 

你能看到字符串是如何"+javavar+"嵌入到那里以创建有效的 JavaScript 代码的吗?

于 2013-03-15T23:39:48.780 回答
1

您没有向服务器发送任何数据,并且在您的代码中:

<?php
$phpvar='"+javavar+"';  // assigning "+javavar+" to $phpvar which stays like that
if($phpvar=='a'){ // which is not true since $phpvar= "+javavar+" !
    echo '<br>You have typed letter a';
}else{
 // your message ...
}

?>
于 2013-03-15T23:42:20.187 回答