gpt4 book ai didi

带有 jQ​​uery 的 PHP 变量。如果在 中使用 jQuery,则 PHP 变量未定义,但在页脚中使用 jQuery 代码时有效

转载 作者:可可西里 更新时间:2023-11-01 00:06:53 24 4
gpt4 key购买 nike

我在让 PHP 变量与 jQuery 一起工作时遇到问题。

我在正文中定义了一个 PHP 变量 $x,并将其发送到一个 PHP 文件。 PHP 文件回显变量值。

在 jQuery 脚本中,我创建了一个 Javascript 变量:

 var test_php_variable = <?php echo $x; ?> ;  //$x is undefined, why?

当执行这行代码时,看起来$x 没有定义。我本来以为是因为它包含在 $(document).ready(function() {} );等待 HTML 正文中的 PHP 代码首先执行的标记。

这行代码有效,但它不允许我使用变量:

var test_php_variable = <?php echo 10; ?> ;  // no problems with a constant

一件有趣的事情是,当我在 HTML 正文末尾包含所有 jQuery 代码时,代码可以正常工作。

如果我在 HTML 头部使用这段代码,为什么 $x 会是未定义的?

HTML/jQuery 代码:

<html>
<head>
<!--load jQuery from Google -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>


<script type ="text/javascript">
//wait until the document is ready - maybe it is loading the javascript
//before the document is ready?
$(document).ready(function() {
//the line of code below does not work, $x is not defined
var test_php_variable = <?php echo $x; ?> ;

$('#Update_variable').click(function(){
//give a "Loading..." message
$('div#test1 span').html('Loading...')
//ask the server to echo "test_variable"
//place "test_variable" in the span of #test1
$.get('server_response.php',
'test_variable=' + test_php_variable,
function(data){
$('div#test1 span').html(data);
}, 'html'); //end $.get
}); //end click
}); //end document ready
</script>


</head>
<body>
<?php $x=10; ?> <!-- it's as if the jQuery code is executing before this line of code -->
<div id="test1">
Some Text<br/>
<span>replace_this_with_server_response</span>
<br/>
<input type="submit" id ="Update_variable" value="Update">
</div> <!-- end test1 -->
</body>

server_response.php代码:

<?php
sleep(1);
echo 'test_variable = '.$_GET['test_variable'];
?>

最佳答案

您收到错误是因为 $x 在脚本中的那个位置未定义。 PHP 从上到下处理页面。为了演示,这段代码会抛出一个错误:

<?php
echo $x;
$x = 10;
?>

...但是这段代码可以工作:

<?php
$x = 10;
echo $x;
?>

这与 jQuery 无关。您可以通过将 javascript 放在页面底部或至少在您的 $x = 10; 行之后来解决这个特定问题。

关于带有 jQ​​uery 的 PHP 变量。如果在 <head></head> 中使用 jQuery,则 PHP 变量未定义,但在页脚中使用 jQuery 代码时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com