服务器端验证结果显示在同一浏览器窗口中

时间:2014-06-19 21:32:05

标签: javascript php jquery html ajax

简单的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,但我不知道该怎么做!你能给我一些代码来实现上述两件事吗?

2 个答案:

答案 0 :(得分:0)

我相信,如果您对所有这一切都不熟悉,就像您似乎一样,您最好使用jQuery。可以在此处找到ajax示例:http://api.jquery.com/jquery.ajax/

这种情况下的代码有点广泛。因为你不仅想要检查它是否实际上是空的,而且你还想要preg_match它。这意味着您要确保您的用户实际发送的内容(而不是中断或破解或注入您的服务器,这很重要)。

所以看到这个我建议阅读教程,像这样(快速谷歌搜索):http://code.tutsplus.com/tutorials/5-ways-to-make-ajax-calls-with-jquery--net-6289

在进入后续步骤之前先熟悉一些基础知识。

答案 1 :(得分:0)

获得你想要的效果。我喜欢使用jQuery Form Plugin,它可以很容易地从任何现有的表单创建一个AJAX表单。然后简单地在你提交的.php文件中回显你的结果(提示:你也可以用样式回显div。)下面的例子,假设你的页面上包含了jQuery Form Plugin,将使用AJAX提交表单并返回将结果回显给id = status的div。

$(document).ready(function(){
    var status = $('#status');
    $('#my_form').ajaxForm({
        beforeSend: function() {
            status.empty();
        },
        complete: function(xhr) {
            status.html(xhr.responseText);
        }
    });
});