传递表单数据和文件使用Ajax的PHP表单、文件、数据、PHP

由网友(看着身旁发生的一切ゝ心凉)分享简介:这可能已经问过,但我有搜索在这里和在谷歌和每一个答案我已经阅读不工作。我要解决的问题是让有姓,名,电子邮件和图像的形式。然后将数据传送到一个​​数据库,并也将文件上传到数据库。目前,我的code没有做任何事情后,我preSS提交。在我添加的文件中,将数据插入到我的数据库。HTML <形式ID =myForm的方...

这可能已经问过,但我有搜索在这里和在谷歌和每一个答案我已经阅读不工作。

我要解决的问题是让有姓,名,电子邮件和图像的形式。然后将数据传送到一个​​数据库,并也将文件上传到数据库。目前,我的code没有做任何事情后,我preSS提交。在我添加的文件中,将数据插入到我的数据库。

HTML

 <形式ID =myForm的方法=邮报是enctype =的multipart / form-data的>
    名字:<输入类型=文本名称=FNAMEID =FNAME> < BR>
    姓氏:其中;输入类型=文本名称=L-NAMEID =L-NAME> < BR>
    电子邮件:LT;输入类型=文本名称=电子邮件ID =电子邮件> < BR>
    图片:LT;输入类型=文件名称=形象ID =形象> < BR>
    <按钮式=按钮NAME =btnSubmit按钮ID =btnSubmit按钮>提交< /按钮>
< /形式GT;
 

AJAX / JS

  $(#btnSubmit按钮)。点击(函数(){
     变种FORMDATA =新FORMDATA($(本)[0]);
     $阿贾克斯({
        键入:POST,
        网址:form2.php,
        数据:FORMDATA,
         成功:功能(数据){
           警报(数据)
         },
      });
  });
 
通过表单把数据写入数据库 php mysql

PHP

  $上传=基名($ _ FILES ['形象'] ['名称']);
$类型= SUBSTR($上传,strrpos($上传,)+1'。');
$大小= $ _FILES ['形象'] ['大小'] / 1024;

如果($ _FILES [形象] [错误] 0)
{
    回声错误:。 $ _FILES [形象] [错误。 < BR>中;
}
其他
{
    回声上载:。 $上传。 < BR>中;
    回声类型:。 $类型。 < BR>中;
    回声大小。 $大小。 KB< BR>中;
}

$ FNAME = $ _ POST ['FNAME'];
$ L-NAME = $ _ POST ['LNAME'];
$电子邮件= $ _ POST [电子邮件];
回声您输入< BR />中;
回声< B>首先名称:LT; / B>中。 $ FNAME。 < BR />中;
回声< B>姓氏:其中; / B>中。 $ LNAME。 < BR />中;
回声< B>电子邮件:LT; / B>中。 $电子邮件。 < BR />中;
 

解决方案

表单默认提交到哪里,他们被告知。为了阻止这一点,你需要prevent它。你的JS应该是这个样子:

  $(#表单数据)。递交(函数(事件){
    。事件preventDefault();
    ...
});
 

This might have been asked before, but i have search on here and on google and every answer I have read doesnt work.

The question I have to solve is make a form with first name, last name, email and a image. Then pass the data into a database and upload the file also to a database. Currently my code doesnt do anything after I press submit. Before I added the file box it would insert the data into my database.

HTML

<form id="myForm" method ="post" enctype="multipart/form-data">
    First Name: <input type="text" name="fname" id="fname"> <br>
    Last Name: <input type="text" name="lname" id="lname"> <br>
    Email:  <input type="text" name="email" id="email"> <br>
    Image: <input type="file" name="image" id="image"> <br>
    <button type="button" name="btnSubmit" id="btnSubmit"> Submit </button>
</form>

AJAX/JS

$("#btnSubmit").click(function(){
     var formData = new FormData($(this)[0]);
     $.ajax({
        type: 'POST',
        url: 'form2.php',
        data: formData,
         success: function (data) {
           alert(data)
         },
      });
  });

PHP

$upload = basename($_FILES['image']['name']);
$type = substr($upload, strrpos($upload, '.') + 1);
$size = $_FILES['image']['size']/1024; 

if ($_FILES["image"]["error"] > 0)
{
    echo "Error: " . $_FILES["image"]["error"] . "<br>";
}
else
{
    echo "Upload: " . $upload . "<br>";
    echo "Type: " . $type . "<br>";
    echo "Size: " . $size . " kB<br>";
}

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
echo "You Entered <br />";
echo "<b>First Name:</b> ". $fname . "<br />";
echo "<b>Last Name:</b> ". $lname . "<br />";
echo "<b>Email:</b> ". $email . "<br />";

解决方案

Forms by default submit to wherever they're told. In order to stop this, you need to prevent it. Your js should look something like this:

$("form#data").submit(function(event){
    event.preventDefault();
    ...
});

阅读全文

相关推荐

最新文章