我有一个名为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
答案 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>