2011-09-24 67 views
0
  1. 用户输入一个数字并单击提交。该号码现在显示在页面上。在同一页上传递变量

  2. 然后询问用户是否希望将数字加倍。他们点击是。

  3. 现在出现在页面上的翻倍数字。

我在第3部分遇到问题。这可能只使用PHP?

更新:感谢您的回答。这是我第一次使用PHP脚本,所以我不确定。我正在研究用AJAX来做这件事。我很想知道,为什么有可能得到第2部分,如果你不能到第3部分。任何人都可以解释这个或提供一个链接?

+0

请注意:我正在尝试在同一页面上完成所有操作。 – inperspective

+0

如果你想在不重新加载页面的情况下做到这一点,那么不只是使用PHP,否则你需要涉及一些JavaScript/AJAX – Clive

+0

关于你的更新,你不能从1-2得到任何超过你可以从2-3中获得,而无需刷新页面或使用JavaScript。 – codercake

回答

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> 
0

使用类似document.formname.inputname(http://www.quirksmode.org/js/forms.html)的形式ID,然后再乘以2,然后使用JavaScript将其显示在任何你想要的位置。

1

http://javascript.about.com/od/ajax/a/ajaxasyn.htm和 可能的例子。在脚本的顶部添加下面的脚本来启动一个会话当前用户:

session_start();  

这将允许你存储在会话$_SESSION该请求之间仍然存在变数。使用isset检查会话中是否设置了值。

0

这实在是一个多回答评论的,但这样可以限制评论长度所以这里的那朵:

误以为网页是代名词PHP脚本似乎是新手之间的共同PHP程序员。真的,网页是一个HTML文档(带有关联的资源),作为HTTP响应的一部分,从Web服务器发送到Web浏览器。单个服务器端脚本可以生成许多不同类型的网页,并且在处理HTML表单时(正如您似乎正在做的那样),单个服务器端脚本正是如此。在“web 1.0”应用程序中,单击“提交”(例如)通常会导致浏览器发出新的HTTP请求(称为“页面转向”),并且Web服务器会跟踪用户在翻页通过将“状态”存储在“会话”(每个HTTP请求的HTTP头部中包括的关联密钥以及网络“登录”产生的HTTP响应)或一个或多个HTTP参数中。重点是每个新的HTTP请求可以用于服务器上的相同脚本/ URL,但行为(以及网页的外观)将会不同,因为服务器以某种方式跨页面跟踪“工作流”的状态转。现在

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