PHP + jQuery + Ajax 表单提交 - 同一页面返回结果
Posted
技术标签:
【中文标题】PHP + jQuery + Ajax 表单提交 - 同一页面返回结果【英文标题】:PHP + jQuery + Ajax form submission - return results on the same page 【发布时间】:2011-08-06 14:22:17 【问题描述】:我想要以下:
用户通过点击提交表单 (index.php
),表单输入由外部 PHP 文件 (search.php
) 处理,结果发布在原始页面 (index.php
) 的 div 中。
我已经收集了大部分代码。它通过单击提交表单并将其发送到 PHP 脚本。
我现在需要将 PHP 脚本的结果返回到原始页面 (index.php
)。
到目前为止,这是我的代码:
function submit()
$(function()
var id = "id";
var dataString = 'id=' + id;
$.ajax(
type: "POST",
url: "inc/search.php",
data: dataString,
success: function()
goToByScroll("result");
$('#result').html("<br><br><br><br><br><br><br><br><br><br><
div class='center'><img src='img/loader.gif' /></div>").hide().fadeIn(2500, function()
$('#result').html("Finished");
);
);
return false;
);
我的 PHP 文件(用于测试)是:
<?php function safe($value)
htmlentities($value, ENT_QUOTES, 'utf-8');
return $value;
if (isset($_POST['id']))
$id = safe($_POST['id']);
echo ($id);
elseif (!isset($_POST['id']))
header('Location: error?id=notfound');
?>
我希望将search.php
(在本例中为“id”)的结果发布到#result,但我不知道如何:S
【问题讨论】:
【参考方案1】:我认为您几乎拥有一切。 success
下的回调函数需要一个参数,它代表来自 search.php
的结果
success: function(res)
goToByScroll("result");
$('#result').html("<br><br><br><br><br><br><br><br><br><br><div class='center'><img src='img/loader.gif' /></div>").hide().fadeIn(2500, function()
$('#result').html(res + "<br /><br /> Finished");
);
res
是所有输出为search.php
。回声,php 标签之外的东西,等等如果你加载了search.php
本身,你会看到什么。
我不知道您是否希望“已完成”仍然存在。不吃就拿出来。
【讨论】:
这是 100% 的工作 :) 最好的事情是:我只需要复制和粘贴它!非常感谢! 哈哈,我只在你的字符中添加了大约六个字符,你可以直接输入它们。很高兴它成功了【参考方案2】:为你的成功函数添加一个参数,例如:
success: function(param) ...
参数是一个字符串,它是服务器端脚本的所有输出。您可以将其设置为您想要的任何内容并将其放置在某个元素中
$("#element").html(param);
【讨论】:
您好,观察者,感谢您的快速回复和您的时间!我刚刚包含了我的 php 测试脚本。你能告诉我在上面的例子中我必须添加什么来在 index.php 上显示我的结果吗? 无论您在服务器端 php 脚本中回显什么,都将设置为成功函数中的变量 param。只需回显 ID,如果没有找到它只是echo("ID Not Found");
。然后在成功函数中执行:$("#results").html(param);
这应该可以工作。
非常感谢大家!当 jon_darkstar 想出一个对我来说更简单的解决方案时,我几乎已经找到了解决方案!谢谢你的时间!!以上是关于PHP + jQuery + Ajax 表单提交 - 同一页面返回结果的主要内容,如果未能解决你的问题,请参考以下文章
php 用于在PHP中提交AJAX表单的Jquery Ajax Post示例
使用 AJAX PHP JQuery 提交表单将我带到操作页面
使用 jQuery AJAX 向所需的 PHP POST 请求处理程序提交表单不起作用