AJAX PHP无刷新form表单提交

原文地址:http://blog.sina.com.cn/s/blog_6513b5cf01013p5q.html



ajax.php


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<script language="javascript">
function saveUserInfo()
{
//获取接受返回信息层
var msg = document.getElementByIdx_x("msg");
//获取表单对象和用户信息值
var f = document.user_info;
var userName = f.user_name.value;
var userAge = f.user_age.value;
var userSex = f.user_sex.value;
//接收表单的URL地址
var url = "./ajax_output.php";
//需要POST的值,把每个变量都通过&来联接
var postStr    = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;
//实例化Ajax
//var ajax = InitAjax();

           var ajax = false;
          //开始初始化XMLHttpRequest对象
          if(window.XMLHttpRequest) { //Mozilla 浏览器
                  ajax = new XMLHttpRequest();
                  if (ajax.overrideMimeType) {//设置MiME类别
                          ajax.overrideMimeType("text/xml");
                  }
          }
          else if (window.ActiveXObject) { // IE浏览器
                  try {
                          ajax = new ActiveXObject("Msxml2.XMLHTTP");
                  } catch (e) {
                          try {
                                  ajax = new ActiveXObject("Microsoft.XMLHTTP");
                          } catch (e) {}
                  }
          }
          if (!ajax) { // 异常,创建对象实例失败
                  window.alert("不能创建XMLHttpRequest对象实例.");
                  return false;
          }
               
               
               
//通过Post方式打开连接
ajax.open("POST", url, true);
//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST数据
ajax.send(postStr);
//获取执行状态
ajax.onreadystatechange = function() {
    //如果执行状态成功,那么就把返回信息写到指定的层里
    if (ajax.readyState == 4 && ajax.status == 200) {
     msg.innerHTML = ajax.responseText;
    }
}
alert (userName);
}
</script>
<body >
<div id="msg"></div>
<form name="user_info" method="post" action="">
姓名:<input type="text" id="user_name"name="user_name" /><br />
年龄:<input type="text" name="user_age" /><br />
性别:<input type="text" name="user_sex" /><br />
<input type="button" value="提交表单" onClick="saveUserInfo()">
</form>
</body>


ajax_output.php

<?php
      $username = $_POST['user_name'];
      $userage = $_POST['user_age'];
      $usersex = $_POST['user_sex'];
   echo "$username <br>";
   echo "$userage <br>";
   echo "$usersex <br>";
   $db = new mysqli('localhost','root','123456','test');
   if(!$db){
    echo "连接失败!";
   }
   $db->query("set names utf8");
   $query = "insert into userinfo(uname,uage,usex) values ('".$username."','".$userage."','".$usersex."')";
   $result = $db->query($query);
   if ($result){
    echo "上传成功!";
   }
   else {
    echo "失败!";
   }
   $db->close();

?>




通过ajax提交form表单数据到php可以实现页面无需刷新即可提交数据,并且可以异步处理服务器的响应。 首先,需要在HTML中引入jQuery或其他的ajax库,以方便使用ajax函数。然后,在form表单的提交事件中使用ajax函数来处理提交。 具体实现步骤如下: 1. 编写HTML表单代码,包含需要提交的各种输入字段和一个提交按钮。 2. 使用JavaScript/jQuery监听表单的提交事件: ```javascript $('#form_id').submit(function(event) { event.preventDefault(); // 阻止表单的默认提交动作 // 获取表单数据 var formData = $(this).serialize(); // 发送ajax请求 $.ajax({ url: '处理数据的php文件路径', type: 'POST', data: formData, success: function(response) { // 响应成功时的操作 }, error: function(xhr, status, error) { // 响应失败时的操作 } }); }); ``` 其中,`form_id`是表单的ID,`处理数据的php文件路径`是处理提交数据的服务器端脚本文件路径。 3. 在服务器端的PHP脚本中,使用`$_POST`超全局数组来获取通过ajax提交的表单数据,进行相应的处理,然后返回处理结果给前端。 ```php <?php // 获取表单数据 $data1 = $_POST['input1_name']; $data2 = $_POST['input2_name']; // 进行数据处理或其他操作 //... // 返回处理结果给前端 echo $result; ?> ``` 以上就是通过ajax提交form表单数据到PHP的简单实现过程。通过这种方式,可以实现页面的异步提交,并在不刷新页面的情况下与服务器进行交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值