建议一个AJAX解决方案来表单提交而不重新加载页面,使用action =“”而不是action =“response.php”

时间:2010-11-21 06:51:58

标签: ajax webforms

我有一个搜索页面:(请原谅错误的语法,仅用于演示目的)

<form action="" method="post" name="form">
//form elements and such with a hidden input name="action" value="search"
</form>
<?php if(isset($_POST['action']) and $_POST['action'] == 'search'): ?>
<?php include results.php ?> //takes form data, build SQL query, puts results in array
<?php foreach($results as result) blah blah //for each result display it ?>
<?php endforeach; ?>
<?php endif; ?>

我见过将action属性设置为php文件的解决方案。不幸的是,在我的例子中它没有。拿这个:http://www.simonerodriguez.com/ajax-form-submit-example/

<form name="MyForm" action="response_ajax.php" method="post" onsubmit="xmlhttpPost('response_ajax.php, 'MyForm', 'MyResult', '<img src=\'pleasewait.gif\'>'); return false;">

看起来不错,但不幸的是我没有第一个参数:reqsponse_ajax.php,我的空白。

JS可以在这里找到:http://www.simonerodriguez.com/wp-content/plugins/downloads-manager/upload/ajaxsbmt.js

如果有人可以修改脚本或提出更好的解决方案,那就太棒了,谢谢。

1 个答案:

答案 0 :(得分:0)

当您使用AJAX时,动作属性中的内容应该无关紧要。它是启动AJAX处理的onsubmit或提交按钮的onclick属性。

你了解AJAX的基础知识,对吗?而不是实际提交将加载新页面的表单,您将XMLHttpRequest发送到服务器,POST数据,并等待onreadystatechange回复,此时您动态更新页面。网上有数百个甚至数千个这样的例子。