javascript - .ajaxForm 将数据传递给 php

标签 javascript php mysql ajax

我正在努力使用 ajaxForm 将数据传递到我的 PHP 文件,以便我可以插入到 MySQL 数据库中。

下面是当前在表单提交期间显示进度条的 JavaScript 函数,问题是姓名、电话和电子邮件的“发布”不起作用,但附件上传起作用。

$(function() {
    var name = document.getElementById("name").value;
    var phone = document.getElementById("phone").value;
    var email = document.getElementById("email").value;

    var percent = $('.percent');
    var bar = $('.bar');

    $('form').ajaxForm({
        dataType:  'json',
        data : {
                name:name,
                phone:phone,
                email:email
                },

        beforeSend: function() {
            document.getElementById("bar").style.backgroundColor="rgb(51,166,212)";
            bar.width('0%');
            percent.html('0%');
        },

        uploadProgress: function(event, position, total, percentComplete) {
            var pVel = percentComplete + '%';
            bar.width(pVel);
            percent.html(pVel);
        },

        complete: function(data) {
            document.getElementById("bar").style.backgroundColor="rgb(185,221,111)";
            percent.html("Done!");
            setTimeout(function(){
                modal.style.display = 'none';
                location.reload(); 
            }, 2000);

        }

    });

});

以下是将值传递到的 PHP 文件中的代码。

<?php
include("sql_connection.php");

  $name = $_POST['name'];
  $phone = $_POST['phone'];
   $email = $_POST['email'];

$sql = "INSERT INTO helpdesk (Name, Phone, Email) VALUES ($name, $phone, $email)";
mysqli_query( $conn, $sql);

$dir = 'uploads/';
$count = 0;

if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_FILES['files']))
{

foreach ( $_FILES['files']['name'] as $i => $name )
{

    if ( !is_uploaded_file($_FILES['files']['tmp_name'][$i]) )
        continue;

    if( move_uploaded_file($_FILES["files"]["tmp_name"][$i], $dir . $name) )
        $count++;
}
}

  echo json_encode(array('count' => $count));

?>

有什么建议吗?

谢谢

最佳答案

将 SQL 查询更改为:

$sql = "INSERT INTO helpdesk (Name, Phone, Email) VALUES ('".$name."', '".$phone."', '".$email."')";

否则,您需要更改开始数据库连接的顶部的包含内容。

正如我在您的评论中读到的那样,问题在于输入可能不包含任何值。您什么时候发起 Ajax 请求?提交后或页面加载后?

也许您可以添加他应该从中获取信息的代码?

关于javascript - .ajaxForm 将数据传递给 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36176716/

相关文章:

mysql - 更新内部连接卡住

javascript - 渲染到表中的 1,000 行速度很慢

javascript - 谷歌静态 map 403 错误

php - 如何对区分大小写的 MySQL 数据库执行不区分大小写的搜索?

php - 现有 PHP 应用程序需要一个简单的 ORM 或 DBAL

java - com.mysql.jdbc.MysqlDataTruncation : Data truncation: Incorrect datetime value: 'Mon Feb 11 00:00:00 IST 2013' for column 'INVOICE_DATE' at row 1

mysql - MySQL 中表排序规则之间的性能差异

javascript - 将项目添加到 json 对象

javascript - 使用javascript点击创建新的表单字段

php - Android GZip 通过 PHP 到 MySQL BLOB