Php 如何发送数据表单?

Php 如何发送数据表单?,php,jquery,Php,Jquery,我在尝试序列化数据表单时遇到问题 这是代码。我有一个包含表单的page1.php。当表单通过AJAX发送后,我检索表单数据,然后将其发送到page2.php 当它试图序列化文件字段时,问题出现了 page1.php(包含表单) page2.php(处理表单数据) 试试这个(根据html替换JQuery选择器): 这可能很乏味,但我就是这样设法将图像发送到后端的 方法$(“#签名”)将返回一个JQuery输入对象 这:$(“#签名”)[0]返回HTML输入标记 这:$(“#签名”)[0]。文件返回

我在尝试序列化数据表单时遇到问题

这是代码。我有一个包含表单的page1.php。当表单通过AJAX发送后,我检索表单数据,然后将其发送到page2.php

当它试图序列化文件字段时,问题出现了

page1.php(包含表单)

page2.php(处理表单数据)

试试这个(根据html替换JQuery选择器):

这可能很乏味,但我就是这样设法将图像发送到后端的

方法
$(“#签名”)
将返回一个JQuery输入对象

这:
$(“#签名”)[0]
返回HTML输入标记

这:
$(“#签名”)[0]。文件
返回一个包含所有选定文件的JQuery对象

最后,这个:
$(“#签名”)[0]。文件[0]
将返回JQuery对象中的第一个文件

我假设你只接受一个文件。。。如果没有,则必须将存储在
$(“#签名”)[0]中的每个文件追加到
formData


希望这有帮助


我不久前也有同样的问题。我将这个插件用于混合表单-数据加文件,或者在其他情况下使用这个插件,但这个插件仅用于文件上传

我经常使用它们,它们很有魅力,很容易集成


希望这会有所帮助

请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。表单标记在哪里?序列化有什么问题?我得到了“未定义的索引”,当我检索ajax响应时,此错误被引用到签名变量jQuery的
.serialize()
方法无法提交文件字段的内容,因为javascript无权访问文件内容。感谢您的回复。使用这部分代码:
$('signature')[0]。文件[0]
,我将检索第一个文件的名称,例如
$文件['signature']['name']',,因此如何检索tmp_名称,例如
$文件['signature']['tmp_名称']或大小..等等这段代码:
$('signature signature'')[0]。文件[0]
让您可以像使用标准POST(而不是AJAX)一样发送文件。。。它起作用了吗?
$(document).ready(function(){
  $("#enviar").click(function(e){
      e.preventDefault();
          $.ajax({
              type: "POST",
              url: "processar_updateUser.php",
              data: $("form").serialize(), 
              success: function(data){
                   alert(data);
              }
          });
      return false; 
  });
});
<?php
   $personal_name = addslashes(htmlentities($_POST['personalname']));
   $name          = addslashes(htmlentities($_POST['name']));
   $surname       = addslashes(htmlentities($_POST['surname']));
   $concatnom     = $name.".".$surname;
   $password      = addslashes(htmlentities($_POST['password']));
   $adegree       = addslashes(htmlentities($_POST['adegree']));
   $initials      = addslashes(htmlentities($_POST['initials']));
   $n             = substr($name,0,1);
   $c             = substr($surname,0,1);
   $initials      = $n.$c;
   $email         = addslashes(htmlentities($_POST['email']));// que sigui cadena+@"+cadena+.+cadena
   $telephone     = addslashes(htmlentities($_POST['telephone']));  //numero y nomes 9
   $signature     = addslashes(htmlentities($_FILES['signature']['name']));//i have used $_POST, but dind't work
?>
var formData = new FormData();
formData.append('personalname', $("#personalname").val());
formData.append('name', $("#name").val());
formData.append('surname', $("#surname").val());
formData.append('password', $("#password").val());
formData.append('adegree', $("#adegree").val());
formData.append('initials', $("#initials").val());
formData.append('email', $("#email").val());
formData.append('telephone', $("#telephone").val());
formData.append('signature', $('#signature')[0].files[0]);

$(document).ready(function(){
  $("#enviar").click(function(e){
      e.preventDefault();
          $.ajax({
              type: "POST",
              url: "processar_updateUser.php",
              data: formData, 
              success: function(data){
                   alert(data);
              }
          });
      return false; 
  });
});