php - 使用 $.post() 方法将图像发送到其他页面

标签 php jquery html mysql ajax

我有两个页面,第一页有一个表单,它接受姓名、手机号码等信息以及来自用户的图像。 我想使用 jquery 访问图像并使用 $.post() 方法将其发送到其他页面我想访问图像并将其插入数据库

第一个文件

<script>
        $(function(){
           $("#add_staff").click(function(){

              event.preventDefault();
                var regex_mobile=/^\d{10}$/;
                var regex_email = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

                var insti=$("#inst_id").val();
                var name=$("#Staff_name").val();
                var pwd=$("#Staff_pwd").val();
                var add=$("#staff_address").val();
                var dob=$("#Staff_dob").val();
                var mail=$("#Staff_mail").val();
                var role=$("#Staff_role").val();
                var mobile=$("#Staff_mobile").val();
                var img = $('#image').prop('files')[0];

                if(name=="" || pwd=="" || add=="" || dob=="" || mail=="" || role=="" || mobile=="")
                {
                  alert("All fields are compulsory");
                }
                else{

                    if(!regex_mobile.test(mobile)) {
                    alert("Mobile Number invalid");
                    } 
                    else if(!regex_email.test(mail)){
                      alert("Email Invalid");
                    }
                    else{


                            $.post("add_faculty2.php",
                            {
                                  insti: insti,
                                  name:name,
                                  pwd:pwd,
                                  add:add,
                                  dob:dob,
                                  mail:mail,
                                  role:role,
                                  mobile:mobile,
                                  img:img
                            },

                               function(data,status){
                                      $("#msg").text(data);
                                      alert(data);

                                      alert(status);

                                 });

              }
           });
        });
      </script>

在上面的文件中,所有信息都是从用户那里接受的,在jquery中我尝试访问所有信息和图像,然后我尝试使用 $.post() 方法将数据发送到其他页面。

第二个文件

<?php
$insti =$_POST['insti'];
$name =$_POST['name'];
$pwd =$_POST['pwd'];
$add =$_POST['add'];
$dob =$_POST['dob'];
$mail =$_POST['mail'];
$role =$_POST['role'];
$mobile =$_POST['mobile'];
$img =$_POST['img'];
$today = date("Y-m-d H:i:s");

include_once 'conf.php';

$q="insert into tbl_staff_details(inst_id,name,pwd,email,phone,photo,address,dob,role,created_date) values('".$insti."','".$name."','".$pwd."','".$mail."','".$mobile."','".$img."','".$add."','".$dob."','".$role."','".$today."')";

echo $q;

$r=mysqli_query($con,$q);

if($r)
{
    echo "Success";
}
else
{
    echo "Fail";
}

?> 在上面的文件中,我使用第一个文件中的 $.post() 方法发送的 $_POST[] 访问所有信息,然后我尝试将所有数据插入数据库

问题是数据没有插入数据库 但是当我省略图像时,所有其他数据都会插入数据库中

最佳答案

首先你需要在 JavaScript 中使用 FormData()

示例

// formdata
var formdata = FormData();

var insti=$("#inst_id").val();
var name=$("#Staff_name").val();
var pwd=$("#Staff_pwd").val();
var add=$("#staff_address").val();
var dob=$("#Staff_dob").val();
var mail=$("#Staff_mail").val();
var role=$("#Staff_role").val();
var mobile=$("#Staff_mobile").val();
var img = $('#image').prop('files')[0];

formdata.append('upload[insti]', insti);
formdata.append('upload[name]', name);
formdata.append('upload[pwd]', pwd);
formdata.append('upload[add]', add);
formdata.append('upload[dob]', dob);
formdata.append('upload[mail]', mail);
formdata.append('upload[role]', role);
formdata.append('upload[mobile]', mobile);
formdata.append('upload[img]', img);


// now send 

$.post("add_faculty2.php", formdata, 
    function(data,status){
      $("#msg").text(data);
      alert(data);

      alert(status);
    }
);

在您的 php 脚本中,您可以通过调用来访问图像

$img = $_FILES['upload']['img']['name'];
$img_tmp = $_FILES['upload']['img']['tmp_name'];

其他

$insti = $_POST['upload']['insti'];
$name = $_POST['upload']['name'];
$pwd = $_POST['upload']['pwd'];
$add = $_POST['upload']['add'];
$dob = $_POST['upload']['dob'];
$mail = $_POST['upload']['mail'];
$role = $_POST['upload']['role'];
$mobile = $_POST['upload']['mobile'];
$today = date("Y-m-d H:i:s");


// you can see the image printed here..
var_export($img);

希望这有帮助。

关于php - 使用 $.post() 方法将图像发送到其他页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575098/

相关文章:

php - 多张图片上传 PHP & Mysql

jquery - 从当前 url 添加/删除 anchor 名称而不刷新

javascript - js按钮不更新innerhtml

javascript - 多维 boolean 数组检查 Javascript 中是否全部为真

javascript - 绘制元素边框(动画)

php - Rel 属性在 mysql 数据库中不起作用

javascript - 添加和删​​除类不同的元素

javascript - Jquery PHP 图像 slider

php - 对于 Laravel Eloquent 模型及其关系,如何实现由 UUID 组成的主键,而不是自动递增的整数?

php - 如何将行数可变的表单中的数据添加到 MySQL 表中?