【问题标题】:Writing PHP output into textfield将 PHP 输出写入文本字段
【发布时间】:2013-04-04 05:43:46
【问题描述】:

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

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

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

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

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

我遇到的问题是它不能实时工作,我可以轻松地在文本框上显示回显,但我无法让它保持空白,然后在功能完成后填充该框。

感谢您抽出宝贵时间阅读。

【问题讨论】:

  • 尝试使用 javascript 实时完成任何您需要做的事情。或刷新页面。

标签: php javascript html ajax dom


【解决方案1】:

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

如果你用 Google 搜索 PHP Ajax tutorial,你会发现很多例子。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      html form action attribute 应该是一个 URI,而不是一个 javascript 函数。

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

      您可以在 Mootools 网站上看到full demo example of ajax 实时更新(HTML、PHP、Javascript)。

      【讨论】:

        【解决方案4】:

        两种方法:

        通过发布和刷新:

        你的表单是这样的 脚本.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 这将需要更多的研究。试试这个,简单多了!

        【讨论】:

        • 你在正确的轨道上,但是,“hello world”是在加载时写在文本框中的,无论如何要让文本框保持空白,当你点击“提交”时,你好世界是写在盒子里的吗?
        • 是的。 isset($_POST) ? $result = "" : $result = "Hello world!";
        • 好的,谢谢,我现在想测试一下,有没有我可以通过按提交来测试它,并且在操作后显示“hello world”,因为目前,我需要创建我的 php 脚本。
        【解决方案5】:

        您需要使用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 是表单的 ID,result 是您要显示结果的框的 ID。

        【讨论】:

          【解决方案6】:

          你对 PHP 的看法是错误的; PHP 不直接与 Web 浏览器交互。你需要的是AJAX。原因如下:

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

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

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

          使用Javascript“在后台”发出请求并在不重新加载的情况下更新页面的技术称为AJAX,完成任务的方法有很多,但迄今为止最简单和最流行的方法是使用JQuery library,这是一个很棒的工具包,包含有用的功能和对 Javascript 的补充,可以减少使用的痛苦(甚至是愉快!)——包括a simple function for making AJAX requests using the POST method

          在这个主题上有很多东西要学,但希望这能让你对完成这项任务需要知道什么有足够的了解。

          【讨论】:

            猜你喜欢
            • 2019-08-14
            • 2020-07-13
            • 1970-01-01
            • 2015-07-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-02-05
            • 1970-01-01
            相关资源
            最近更新 更多