使用ajax更改php变量
我有一个php变量,如下所示:使用ajax更改php变量,php,jquery,ajax,Php,Jquery,Ajax,我有一个php变量,如下所示: <script> var jquery_value = <?php echo $php_value; ?> </script> PHP代码: $php_value = 'Am from PHP'; 我想用jQuery更改这个变量,而jQuery在同一页上?你不能 当页面交付到浏览器并运行JavaScript时,生成页面的PHP程序将完成运行,并且变量将不再存在 JavaScript将允许您向服务器(Ajax)发送
<script>
var jquery_value = <?php echo $php_value; ?>
</script>
PHP代码:
$php_value = 'Am from PHP';
我想用jQuery更改这个变量,而jQuery在同一页上?你不能
当页面交付到浏览器并运行JavaScript时,生成页面的PHP程序将完成运行,并且变量将不再存在
JavaScript将允许您向服务器(Ajax)发送新数据,服务器可以将数据存储在某个地方(通常是数据库),并读取响应
JavaScript还允许您在浏览器(DOM)中修改页面(包括Ajax请求响应中包含的数据)。您无法使用JavaScript更改php值。i、 e服务器脚本在客户端脚本生效后首先运行。在这种情况下,您无法修改相同的脚本,因为它们已在浏览器中呈现。如果jQuery将要处理数据,则可以将PHP变量分配给jQuery变量,如下所示:
<script>
var jquery_value = <?php echo $php_value; ?>
</script>
var jquery_值=
据我所知,因为jQuery是客户端,php是服务器端,所以不可能将jQuery变量分配回php。php代码是在服务器端运行的,而jQuery是在客户端运行的。从jQuery更新PHP变量的方法是使用一个提交到PHP页面的jQuery调用,并让PHP查找它:
$php_value = 'Am from PHP';
if exists($_POST['php_value_from_jquery']) {
$php_value = $_POST['php_value_from_jquery'];
}
如果我正确理解了您的问题,AJAX无法将数据发布到同一页面上的PHP代码中。有人告诉我这是可以的,但这并不是小事——尽管如此,我无法想象这是怎么可能的。无论如何,如果使用辅助PHP文件,AJAX是很容易的 这是我的意思的一个例子。如果您尝试以下方法:
<?php
echo 'Hello';
?>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'POST',
url: '',
success: function(data) {
alert(data);
}
});
}); //END $(document).ready()
</script>
</head>
<body>
</body>
</html>
file1.php
<?php
echo 'Hello';
?>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'file1.php',
success: function(data) {
alert(data);
}
});
}); //END $(document).ready()
</script>
</head>
<body></body>
</html>
var storeme = "Hello there";
$.ajax({
type: 'POST',
url: 'file1.php',
data: 'stored_on_server=' +storeme,
success: function(data) {
alert(data);
}
});
<?php
session_start();
$SESSION['a_variable_name'] = $_POST['stored_on_server'];
<?php
session_start();
echo $SESSION['a_variable_name'];
file3.php
<?php
echo 'Hello';
?>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'file1.php',
success: function(data) {
alert(data);
}
});
}); //END $(document).ready()
</script>
</head>
<body></body>
</html>
var storeme = "Hello there";
$.ajax({
type: 'POST',
url: 'file1.php',
data: 'stored_on_server=' +storeme,
success: function(data) {
alert(data);
}
});
<?php
session_start();
$SESSION['a_variable_name'] = $_POST['stored_on_server'];
<?php
session_start();
echo $SESSION['a_variable_name'];
您不能更改硬编码变量。只能将GET
或POST
变量传递给PHP。