利用FormData收集表单数据实现ajax传递post数据

向服务器ajax传入数据可以:1.利用dom获取表单值传入(f1)   2.利用FormData发送传递ajax数据(f2)(没有form表单,这使用append()方法添加数据参考f3)

<form id="reg">
  用户名:<input type="text" id="username" name="username" /><br />
  密码:<input type="text" id="userpwd" name="userpwd" /><br />
  邮箱:<input type="text" id="useremail" name="useremail" /><br />
    <input type="button" value="注册" οnclick="f1()"/>
</form>

<script type="text/javascript">

//ajax收集表单数据
function f1(){
    //利用dom技术可以收集表单信息
    var name = document.getElementById('username').value;
    var pwd = document.getElementById('userpwd').value;
    var email = document.getElementById('useremail').value;
    
    var data_str = "name="+name+"&pwd="+pwd+"&email="+email;
    
    var xhr = new XMLHttpRequest();
    xhr.open('post','./03.php');
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xhr.send(data_str);
}

function f2(){
	//①利用高级方法处理form表单(html5新标准,IE浏览器不支持)
	var reg = document.getElementById('reg');
	//②制作一个form数据对象 FormData()
	//制作一个formdata表单数据对象,里边存放form表单的信息
	var fd = new FormData(reg);
	//reg是form元素节点对象
	var xhr = new XMLHttpRequest();
	xhr.onreadystatechange = function(){
		if(xhr.readyState==4 && xhr.status==200){
			alert(xhr.responseText);
		}
	}
	xhr.open('post','./03.php');
	//③ 给服务器传递了一个form数据对象
	//④ ajax打开方式就post方式
	xhr.send(fd);
}

//没有form表单收集数据【3】
function f3(){
    //没有form元素节点对象
    var fd = new FormData();
    var name = document.getElementById('username').value;
    var email = "line@163.com";
    var pwd = "123456";
    //把以上数据填充到fd对象里边
    fd.append('name',name);
    fd.append('email',email);
    fd.append('pwd',pwd);

    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function(){
        if(xhr.readyState==4 && xhr.status==200){
            alert(xhr.responseText);
        }
    }
    xhr.open('post','./03.php');
    xhr.send(fd);}


</script>

  

转载于:https://www.cnblogs.com/zixueit/p/3850951.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 AJAX 传递表单数据并存储到 Spring Boot 数据库中,可以按照以下步骤进行操作: 1. 在前端页面,使用 jQuery 或者其他 JavaScript 框架来编写 AJAX 请求,将表单数据作为参数传递给后端接口。 例如,可以使用 jQuery 的 `$.ajax()` 方法来发送 POST 请求,将表单数据作为 JSON 数据传递给后端接口: ``` $.ajax({ url: '/api/saveForm', method: 'POST', data: JSON.stringify(formData), contentType: 'application/json', success: function(response) { // 处理成功响应 }, error: function(jqXHR, textStatus, errorThrown) { // 处理错误响应 } }); ``` 其中 `formData` 是一个包含表单数据JavaScript 对象。 2. 在 Spring Boot 后端应用中,编写一个处理 POST 请求的控制器方法,用于接收前端传递表单数据,并将其存储到数据库中。 例如,可以编写一个控制器方法如下: ``` @PostMapping("/api/saveForm") public ResponseEntity<?> saveForm(@RequestBody FormData formData) { // 将表单数据存储到数据库中 formDataRepository.save(formData); // 返回成功响应 return ResponseEntity.ok().build(); } ``` 其中 `FormData` 是一个 Java 类,用于表示表单数据,可以使用 `@RequestBody` 注解将前端传递的 JSON 数据自动转换成 Java 对象。`FormDataRepository` 则是一个 Spring Data JPA 的接口,用于操作数据库。 3. 在 Spring Boot 应用中配置数据库连接信息,并创建对应的表格。 例如,可以在 `application.properties` 配置文件中设置数据库连接信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true ``` 这里使用 MySQL 数据库,并设置了数据库连接信息。`spring.jpa.hibernate.ddl-auto` 参数设置为 `create`,表示在应用启动时自动创建表格。 4. 在 Spring Boot 应用中定义 `FormData` 实体类和 `FormDataRepository` 接口,并使用 `@Entity` 和 `@Repository` 注解进行标记。 例如,可以定义 `FormData` 类如下: ``` @Entity @Table(name = "form_data") public class FormData { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // 省略 getter 和 setter 方法 } ``` 其中 `@Entity` 注解表示这是一个实体类,会映射到数据库中的表格。`@Table` 注解指定表格名称。`@Id` 和 `@GeneratedValue` 注解用于指定主键和自动生成策略。 定义 `FormDataRepository` 接口如下: ``` @Repository public interface FormDataRepository extends JpaRepository<FormData, Long> { } ``` 其中 `@Repository` 注解表示这是一个 Spring Data JPA 的仓库接口。`JpaRepository` 是 Spring Data JPA 提供的一个基本仓库接口,继承了 `PagingAndSortingRepository` 和 `CrudRepository` 接口,提供了一些基本的数据操作方法。 这样就可以使用 AJAX 传递表单数据并存储到 Spring Boot 数据库中了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值