如何在同一个文件中将javascript变量转换为php变量

时间:2015-10-14 15:55:20

标签: javascript ajax

我有一个名为test6.php的文件有javascript变量我需要将此变量转换为php变量但是当我运行它时给我一个错误(PHP注意:Undefined index:/ Applications / MAMP / htdocs / test6中的变量。 php在线14)

<!doctype html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
    var variableToSend = 'foo';
    $.post('test6.php', {variable: variableToSend});
</script>
</head>
<body>

<?php

$x = $_POST['variable'];
echo $x;
?>
</body>
</html>
请注意,我只有一个包含javascript代码和php代码的文件(test6.php),我试图将javascript变量转换为同一文件中的php变量,我需要使用post not get或submit form

3 个答案:

答案 0 :(得分:0)

为什么错误

你应该知道从服务器到客户端的php文件渲染处理,它是:

1. client request the page
2. PHP parser (in server) -> php 2 HTML -> send to client
2. web browser load HTML 
3. JavaScript running ~ 

因此你无法获得变量&#34;变量&#34;当你运行你的PHP文件。 Becuase Js还没跑〜。你应该在ajax之后在JS上打印php echo的值。

如何更改JQuery代码

$.post('test6.php', {variable: variableToSend});

$.post('test6.php', {variable: variableToSend} , 
        function(returnValue){
             console.log(returnValue) ; 
        });

我认为没关系,但我很抱歉我无法测试它〜

答案 1 :(得分:0)

在输出之前检查它是否已设置

<?php
    if( isset($_POST['variable']) ) {
        $x = $_POST['variable'];
        echo $x;
    }
?>

但我不认为这是你真正想要的。 Ajax调用不会更新当前视图。

答案 2 :(得分:0)

将php部分置于顶部并使用isset($ _ POST [&#39; variable&#39;])来检查变量是否存在。

<?php
if( isset($_POST['variable']) ){
    $x = $_POST['variable'];
    echo $x;
    return;
}
?>
<!doctype html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
    var variableToSend = 'foo';
    $.post('test6.php', {variable: variableToSend});
</script>
</head>
<body>

</body>
</html>