如何用jquery将多个字符串发送到数据库,并通过ajaxpost将其发送到php文件?

qltillow  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(406)

给出的是:

<input type='text' name='firstname' id='firstname'>
<input type='text' name='lastname' id='lastname'>
<input type='text' name='username' id='username'>
<input id='pw' name='pw' type='password'>

我尝试使用如下ajax post请求提交数据:

var myData = "firstname="+ $('#firstname').val() + "&lastname="+ $('#lastname').val() + "&username="+ $('#username').val() + "&pw="+ $('#pw').val();
                $.ajax({
                type: "POST",
                url: "php/register.php",
                dataType:"text",
                data:myData, //Form variables
                success:function(response){
                    $("#responds").append(response);
                }

如何通过与数据库对应的php文件以这种方式正确提交这些数据?是一个 <form> 需要用按钮提交吗?

dwthyt8l

dwthyt8l1#

你可以用 serialize() jquery函数

var myData = $("form").serialize();

在这种情况下 <form> 必须在此处阅读

8gsdolmq

8gsdolmq2#

正如许多人所提到的,这个问题有许多解决办法。从我的观点来看,最简单的方法是将字段 Package 成一个表单。
绑定提交事件,该事件在提交表单时触发回调。
使用序列化窗体 .serialize() 用所有有效输入字段及其值的标准url编码表示法创建一个文本字符串(因此您不必自己构建这个查询字符串)
使用发布数据 $.post 并使用success回调处理响应
下面是一个完整的功能片段。您可以在这里看到发送到postbin的数据。

// PostBin CORS
$.ajaxSetup({crossDomain:true})

// Submit handler
$('form').on('submit', function(event) {
  event.preventDefault();
  var $form = $(this)
  $.post(
    'http://postb.in/ADC3a3Vm',// replace with php/register.php
    $(this).serialize(),
    function(response){
      $("#response").append(response);
      $form[0].reset()
    }
  );
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="text" name="firstname" placeholder="First Name">
  <input type="text" name="lastname" placeholder="Last Name">
  <input type="text" name="username" placeholder="Username">
  <input type="password" name="pw" placeholder="Password">
  <button type="submit">Submit</button>
 </form>

 <div id="response"></div>

相关问题