在同一页面上传递变量

时间:2011-09-24 00:50:33

标签: php

  1. 用户输入一个数字并单击提交。该号码现在显示在页面上。

  2. 然后询问用户是否要将该号码加倍。他们点击是。

  3. 页面上会显示加倍的数字。

  4. 我遇到第3部分的问题。这可能只使用PHP吗?

    更新:感谢您的回答。这是我的第一个PHP脚本,所以我不确定。我现在要研究用AJAX进行研究。我很好奇,如果你不能参加第3部分,为什么有可能进入第2部分。任何人都可以解释这个或提供链接吗?

5 个答案:

答案 0 :(得分:1)

我认为你在谈论会话变量。在脚本的顶部添加以下脚本以启动当前用户的会话:

session_start();    

这将允许您在会话$_SESSION中存储变量,这些变量在请求之间存在。使用isset检查是否在会话中设置了值。

答案 1 :(得分:1)

<?php
    $double = (isset($_REQUEST['do_double']) && $_REQUEST['do_double'] == '1') ? ($_REQUEST['number'] * 2) : '';
?>

<form method="get" action="?">
    <input type="hidden" name="do_double" value="<?php echo isset($_REQUEST['number']) ?'1' : '0'; ?>" />
    <input type="text" name="number" value="<?php echo isset($_REQUEST['number']) ? $_REQUEST['number'] : '';?>" />
     <?php if ( ! isset($_REQUEST['number'])) { ?>
         <input type="submit" value="submit" />
     <?php } else { ?>
         <input type="submit" value="Verdoppeln" />
     <?php } ?>
</form>

<div id="number"><?php echo $double; ?></div>

答案 2 :(得分:0)

使用类似document.formname.inputname(http://www.quirksmode.org/js/forms.html)的内容获取表单ID,然后多次使用,然后使用javascript将其显示在您想要的位置。

答案 3 :(得分:0)

我认为异步是必需的。试试这两个读物:
同步和异步之间的区别:http://javascript.about.com/od/ajax/a/ajaxasyn.htm和 可能的例子:http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

答案 4 :(得分:0)

这实际上更多的是评论而不是答案,但是SO限制了评论长度所以这里'tis:

网页与PHP脚本同义的误解似乎在新手PHP程序员中很常见。实际上,网页是HTML文档(具有相关资源),作为HTTP响应的一部分,从Web服务器发送到Web浏览器。单个服务器端脚本可以生成许多不同类型的Web页面,并且在处理HTML表单时(正如您似乎正在做的那样),单个服务器端脚本通常就是这样做的。在“web 1.0”应用程序中,单击“提交”(例如)通常会使浏览器发出新的HTTP请求(称为“页面翻转”),并且Web服务器会跟踪用户在页面转弯时所执行的操作通过将“状态”存储在“会话”(具有包含在每个HTTP请求的HTTP头中的关联密钥 - 以及由Web“登录”生成的HTTP响应)或一个或多个HTTP参数中。关键是每个新的HTTP请求可能是针对服务器上的相同脚本/ URL,但行为(以及网页的外观)会有所不同,因为服务器以某种方式跟踪页面中“工作流程”的状态转动。

现在,如果您确实必须避免翻页,您可以使用Javascript更改浏览器显示的页面的外观/状态,而无需用户点击“提交”按钮。并且XMLHTTPRequest机制(也称为AJAX)允许在“幕后”从Web服务器获取内容并且在用户不做任何事情的情况下改变客户端文档的状态,通常用于实现此目的。但是,如果你做的事情与你在问题中所描述的不同(例如滚动地图或更新股票代码),那只是真的必要,这看起来像是“web 1.0”的完美例子“应用程序工作流程。