0

我有一个表单,它将一些数据发送到一个 php 文件,然后返回一些结果作为示例:

<form action"<?php $_SERVER['PHP_SELF']?>" method="post" id="data">
  <input type"text" name="first_name"/>
  <input type="text" name="last_name"/>
</form>

然后在 javascript 中,我想在提交表单中捕获 clcik 事件,例如:

$("#data").submit(function(){
some code .....
});

这将阻止将输入表单提交到 php 文件的默认操作,问题是我可以为 php 文件发送表单数据并同时为同一表单捕获事件吗?

注意从 php 文件返回的数据将被另一个 php 函数需要

4

2 回答 2

3

为了防止表单提交的默认行为(即页面重新加载),您需要event.preventDefault()像这样使用

$("#data").submit(function(event){
    event.preventDefault();
    //some code .....
});

并且要在不刷新页面的情况下将表单数据发布到php您需要使用任何 jQuery 的可用ajax方法,例如.post()(这将使用方法发送表单值HTTP POST),例如

$("#data").submit(function(event){
    event.preventDefault();// prevent page reload
    // Now post the form using Ajax
    // $(this).serialize() will return an array of all form fields as
    //                                                 name value pair 
    $.post('some_script.php',$(this).serialize(),function(data){
        // Just to check if everything is working well
        console.log('Form Submitted Successfully.');
        // do whatever you want with the data
   });
});

如果您的 php 脚本以json格式返回数据,您可以使用 php 设置标头或强制 jQuery 通过在第 4 个参数中指定ascontent-Type来处理返回数据,例如JSONdataTypeJSON

   $.post('some_script.php',$(this).serialize(),function(data){
        // Just to check if everything is working well
        console.log('Form Submitted Successfully.');
        // do whatever you want with the data
   },'json');
于 2012-06-25T10:25:26.117 回答
0
$("#data").submit(function(e){
e.preventDefault();
$.post("<?php echo $_SERVER['PHP_SELF'] ?>",$(this).serialize(),function(r){ //Do Some Action });
});
于 2012-06-25T10:13:32.803 回答