简单的HTML表单:
<form action="test.php" method="post" name="my_form" id="my_form" >
<input name="c_name" type="text" id="c_name" maxlength="90"/>
</form>
test.php,代码如下:
<?php
$name=$_POST['c_name'];
if ((!isset($name)) || ($name==''))
{
echo 'Fill in the name';
}
else
{
echo $name;
}
?>
现在,我希望在表单提交时执行以下操作:
1)不将当前浏览器窗口保留为PHP以显示相应的消息。我希望表单窗口保持在那里。
2)我不想要一个简单的响应消息。例如,我想而不是"填写名称"一个更图形化的方式来交互,如使隐藏的div出现;换句话说,我想在PHP中编写Jquery并使其执行。这可能吗?如何实现?
我知道我必须使用AJAX,但我不知道该怎么做!你能给我一些代码来实现以上两件事吗?
我相信,如果您对这一切都是新手,那么您最好使用jQuery。在这里可以找到一个ajax示例:http://api.jquery.com/jquery.ajax/
在这种情况下,代码是q位扩展的。因为您不仅需要检查它是否为空,还需要preg_match它。这意味着您要确保用户发送的内容是您真正想要的(而不是破坏或入侵或注入您的服务器,这很重要)。
所以看到这个,我建议阅读一个教程,就像这样(快速谷歌搜索):http://code.tutsplus.com/tutorials/5-ways-to-make-ajax-calls-with-jquery--net-6289
在进入下一步之前熟悉一些基本知识。
得到你想要的效果。我喜欢使用jQuery表单插件,它可以很容易地从任何现有的表单创建一个AJAX表单。然后只需在提交的.php文件中回显结果(提示:也可以用样式回显div)。下面的例子,假设你的页面中包含了jQuery表单插件,它将使用AJAX提交表单,并将返回的结果返回给id=status的div。
$(document).ready(function(){
var status = $('#status');
$('#my_form').ajaxForm({
beforeSend: function() {
status.empty();
},
complete: function(xhr) {
status.html(xhr.responseText);
}
});
});