0

我试过四处寻找这个问题的答案,但似乎找不到。

我有一个数据库,它接收两条信息并将其返回为成功或不成功。

我希望能够按下“提交”按钮,然后运行我的 PHP 查询(这很好),以便在完成后将回显打印到文本框中。

echo '<form name="enrolled" method="post" action="<MY FUNCTION HERE>"><select name="course">';

一旦我的功能完成,它会回显一些东西。我想要一个显示回声的文本框。

我遇到的问题是它不能实时工作,我可以很容易地在文本框中显示回声,但我不能让它保持空白,然后一旦功能完成,填充框。

感谢您花时间阅读。

4

6 回答 6

0

正如 nathan 所说,您似乎对 php 作品有点困惑。它编写 HTML(或其他内容),并将其发送到呈现它的浏览器。在您向服务器发送另一个请求之前,PHP 处于空闲状态。如果您不想从当前页面转换但更新其内容,那么您需要创建 javascript,当触发时向服务器发出请求(并在服务器响应时采取适当的操作。

如果您在 Google 上搜索PHP Ajax 教程,您会发现很多示例。

于 2013-04-03T21:16:32.460 回答
0

一点也不优雅,只是呼应了整个领域……

echo "<input type='text' name='something' value='the value you want to echo'>";

不太确定您要在 PHP 中做什么。

于 2013-04-03T21:18:17.870 回答
0

html 表单操作属性应该是 URI,而不是 javascript 函数。

要实时更新表单或只是输入,您可以使用 javascript 并执行 ajax 请求。如果你想让它变得快速和快速,我建议你使用Mootools Request 类在你的表单中进行 ajax 更新。

您可以在 Mootools 站点中查看ajax实时更新(HTML、PHP、Javascript)的完整演示示例。

于 2013-04-03T21:21:30.087 回答
0

两种方法:

通过发布和刷新:

你的表单就像 script.php

<?php
    $result = "Hello world!"; //Do your logic anywhere but be sure to set the result here
?>
<form method="post" action="script.php">
....
<input type="text" value="<?= $result?>" readOnly>
<input type="submit">
</form>

另一种方法是通过 AJAX,这需要更多的研究。试试这个,简单多了!

于 2013-04-03T21:23:09.443 回答
0

您需要使用发布表单AJAX,然后在框中显示结果。使用 jQuery 库很容易完成。要包含 jQuery 库,只需将其添加到您的 html 头

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

然后您可以使用此脚本提交表单

<script type="text/javascript">
    $(document).ready(function(){
        $("#myform").submit( function () {    
          $.post(
           'post.php',
            $(this).serialize(),
            function(data){
              $("#result").html(data)
            }
          );
          return false;   
        });   
    });

post.php 在您正在调用的脚本的名称中,它将接收表单并返回答案。myform是表单result的 ID,是您想要显示结果的框的 ID。

于 2013-04-03T21:25:24.453 回答
0

您以错误的方式考虑 PHP;PHP 不直接与 Web 浏览器交互。你需要的是AJAX。原因如下:

  1. 客户端(Web 浏览器)向 Web 服务器(apache、lighttpd 等)发送请求
  2. Web 服务器解释该请求,并(在这种情况下)将其交给 PHP
  3. PHP 根据 Web 服务器给它的输入回显结果
  4. Web 服务器将该结果发送回 Web 浏览器
  5. Web 浏览器决定如何处理该信息

现在,如果这是您导航到网页,则 ​​Web 浏览器会呈现由您的 Web 服务器生成的内容(使用 PHP 生成它)。如果网络服务器已经响应,就是这样——你已经得到了响应。要获取更多信息,您必须提出新请求,这意味着您必须执行以下两件事之一(通常):

  • 通过提交表单、重新加载、导航到新页面等方式在浏览器中导航。
  • 使用 Javascript(由客户端执行,而不是服务器)发出“后台”请求

使用 Javascript “在后台”发出请求并在不重新加载的情况下更新页面的技术称为AJAX,完成任务的方法有很多,但迄今为止最简单和最流行的方法是使用JQuery 库,这是一个很棒的工具包,包含有用的功能和对 Javascript 的补充,使使用起来不那么痛苦(甚至令人愉快!)——包括一个使用 POST 方法发出 AJAX 请求的简单函数

关于这个主题有很多东西要学,但希望这能让你对完成这项任务所需的知识有足够的了解。

于 2013-04-03T21:43:46.050 回答