在Javascript循环中操作PHP变量

时间:2014-01-25 06:51:58

标签: javascript php

我正在使用带有提交按钮的javascript确认框,如图所示调用javascript函数。在函数中,我正在设置一个PHP Session变量(我不知道是否可以这样做)。即

<input type="submit" name="delete" value="Delete Album" onclick="**cdelete()**">

javscript函数是:

<script type="text/javascript">
function cdelete(){
var f=confirm("Are you sure you want to delete this Album?");
if(f==true)
{
    <?php $_SESSION['temp']=25;?>
}
else if(f == false)
{
    <?php $_SESSION['temp']=45;?>
}
}
</script>

但问题是会话变量总是取值45.ie f == false 时的值,即使我按下确定按钮,即使确认框返回f为真。 / p>

任何帮助??

5 个答案:

答案 0 :(得分:0)

PHP是一种服务器端语言。您将不得不使用Asynchronous Javascript和Xml(也称为AJAX)来执行PHP代码。 jQuery有一个非常容易使用的AJAX请求函数。你应该检查一下。 http://api.jquery.com/jquery.ajax/

答案 1 :(得分:0)

PHP在之前解析,因此PHP甚至不会看到您尝试使用的Javascript逻辑。

如果您想从Javascript和PHP访问,您可以使用cookie,但是在浏览器中实时更改的任何内容都必须使用AJAX异步发送,以便在加载前在服务器端进行注册下一页。

答案 2 :(得分:0)

问题是PHP代码在服务器端运行,而JavaScript在客户端运行。换句话说,PHP在Web服务器上执行,然后生成的网页(不包含任何PHP)将传递给浏览器。

正在发生的事情是文档中的所有PHP都被解析并执行,然后生成的网页被发送到运行JavaScript的客户端的Web浏览器。因此,您的两行PHP正在服务器上执行(首先将$_SESSION['temp']设置为25,然后设置为45),然后将页面(不包含任何PHP)传递给客户端。如果您在Web浏览器中查看页面源代码,您会注意到PHP代码不存在且条件的主体为空。

有几种方法可以做你感兴趣的事情; AJAX将是一个不错的选择。

答案 3 :(得分:0)

PHP是服务器端脚本。 Javasript是客户方。

您的PHP代码先于其他任何内容执行。

因此,从技术上看,这就是代码执行的方式:

<?php
   $_SESSION['temp'] = 25;
   $_SESSION['temp'] = 45;
?>

<script type="text/javascript">
function cdelete(){
   var f=confirm("Are you sure you want to delete this Album?");
   if(f==true) { }
   else if(f == false) { }
}
</script>

您需要实现AJAX以基于JS设置会话。通过AJAX调用php脚本,它将设置会话变量。

答案 4 :(得分:0)

所有php变量都在服务器端设置。因此,为了设置php变量,您必须向服务器发出请求(可能正在使用ajax)。您可以在following way

中访问php变量的值(已经设置过)
<?php
    $simple = 'simple string';
    $complex = array('more', 'complex', 'object', array('foo', 'bar'));
?>
<script type="text/javascript">
    var simple = '<?php echo $simple; ?>';
    var complex = <?php echo json_encode($complex); ?>;
</script>