【问题标题】:PHP/Javascript/AJAX - Redirect page with a form, and then submit itPHP/Javascript/AJAX - 使用表单重定向页面,然后提交
【发布时间】:2015-06-03 00:02:22
【问题描述】:

我一直在制作一个网页,该网页根据您在表单上输入的内容收集推文,但使用默认表单提交时遇到了一些问题。

我想更改表单提交的工作方式,因为由于执行 php 脚本,页面重定向并为用户提供令牌 ID 可能需要很长时间。 为了简单起见,我认为加快速度的最佳方法是重定向然后提交表单。不幸的是,我认为你不能用 PHP 做到这一点。

有人建议我看看 AJAX,但我不明白这对我有什么帮助。

这就是我的表单的样子:

<form action="testing.php" method="POST">
    <input type="text" name="search" value="" placeholder="All of these words" autofocus/><br>
    <input type="text" name="search2" value="" placeholder="This exact word or phrase" /><br>
    <input type="text" name="search3" value="" placeholder="Any of these words" /><br>
    <input type="text" name="search4" value="" placeholder="None of these words" /><br>
    <input type="text" name="count" value="" placeholder="Number of tweets to search" />

    <select name="lang">
        <option value="">- Tweets language -</option>
        <option value="all">All</option>
        <option value="en">English</option>
        <option value="es">Spanish(Español)</option>
    </select>

    <select name="region">
        <option value="">- Choose a Region -</option>
        <option value="all">All</option>
        <option value="africa">Africa</option>
        <option value="namerica">North America</option>
        <option value="samerica">South America</option>
        <option value="asia">Asia</option>
        <option value="europe">Europe</option>
        <option value="oceania">Oceania</option>
    </select>

    <input type="submit" value="Search" class="special" />
</form>

【问题讨论】:

  • 所以您要的是关于如何使用 Ajax 的教程?本站不适用于教程。 StackOverflow 用于编程以显示有问题(特定问题)的源代码,其他帮助调试和修复它。这里没有什么可修复的...如果您尝试使用 ajax,您将有更多的机会帮助您。之后有任何问题,我相信人们会很乐意提供帮助。
  • 如果你去stackoverflow.com/help/on-topic 你会发现我问这个并没有违反任何规则。这对我来说是个问题,因为我无法实现它,我尝试过但失败了。我不一定需要完成代码,欢迎任何帮助。
  • 显示您的尝试是一个好的开始,我们可以查看您的尝试并向您解释为什么它不起作用,然后提供解决方案。

标签: javascript php jquery ajax forms


【解决方案1】:

AJAX 是最好的方法。

如果您不知道如何使用 AJAX,可以尝试将操作值设置为 $_SERVER['PHP_SELF'],然后在同一页面上将您的 PHP 代码如下:

<?php
 if(isset($_POST['submit']))
  {
   //phpcode
  }

?>

 //form code

这是一种方法。或者您可以阅读有关 AJAX 的信息,然后实现它。

【讨论】:

  • 我已经这样做了,但是页面重定向需要很长时间,我尝试做的是重定向然后提交我的表单,而不是等到脚本完成执行,但我不能不要这样做。
  • 如果您的 PHP 代码太长,那么即使是 AJAX 脚本也需要很长时间才能返回响应。如果您的脚本执行时间很长,您将不得不在后台运行耗时的脚本。你的 PHP 代码到底在做什么?
  • 我的 php 脚本收集了多达 18000 条推文,这就是为什么它需要大量时间。
  • 这是一个非常密集的过程,我认为后台处理是正确的方法。您可以利用popen()在后台执行另一个脚本,并在每获取200条推文后更新日志,然后在您的主页上,您可以通过阅读此日志显示百分比,当它达到100%时,您可以然后要么重定向到新页面,要么使用 AJAX 从生成所有推文的新页面获取内容。
【解决方案2】:

听起来您的问题的解决方案不是 AJAX。

据我所知,您正试图允许用户搜索推文并查看他们的搜索结果。

在收集结果的脚本完成收集结果之前,根本不可能看到结果。您的问题的解决方案在于更好的搜索方法。

【讨论】:

  • 不幸的是它只用 GET 方法刷新页面,但还是谢谢。
  • 重定向然后在重定向页面上执行脚本呢?这行得通吗?
  • 如果您试图通过推文显示搜索结果,则不会。这就是你想要做的吗?
  • 不,我将它们存储在 sql 表中,然后提供稍后下载的选项。
  • 但是您是否也给他们提供立即查看的选项?这是在网络浏览器中吗?在他们提交表单后,您希望将他们引导至的页面是什么(不是您要处理表单的页面,即包含您希望他们在提交表单后看到的任何内容的页面)?
猜你喜欢
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 2012-03-29
  • 2014-07-12
相关资源
最近更新 更多