【问题标题】:unable to update data in db. jQuery, php无法更新数据库中的数据。 jQuery, php
【发布时间】:2015-07-03 11:17:21
【问题描述】:

我在前端使用 jQuery,在后端使用 php。我有一些已修复的跨源问题。但现在我正在填写表格(注册),但数据库正在更新,甚至没有空行。在我在 db 中得到一些空行之前(我确信,那天我的记忆有点模糊!对不起!!)我找不到任何问题,因为错误或成功消息没有在 jQuery 文件中被击中。我尝试了http://localhost/signup.php 并在连接到数据库时显示成功消息。所以我确信它连接到正确的数据库。我还尝试使用该 php 手动输入,并且我也能够导入数据。

我在下面添加 jQuery 和 php 代码。我在 XAMPP 中使用了所有这些。提前致谢。 :)

jQuery:

$("#userReg_btn").click(function(e) 
{
    //user registration in


    var array = [];
    var flag = false;

    var fullName = $("#uFn").val();
    var email = $("#uEa").val();
    var mobile = $("#uMn").val();
    var nID = $("#uNm").val();
    var zip = $("#uZc").val();
    var prof = $("#uPc").val();



    array.push(fullName);
        array.push(email);
        array.push(mobile);
        array.push(nID);
        array.push(zip);
        array.push(prof);

        alert(array);
        console.log(array);
    $.ajax({
            url:"http://localhost/signup.php",
            data:
            {
                fullName: array[0],
                email: array[1],
                mobile: array[2],
                nID: array[3],
                zip: array[4],
                prof: array[5],
            },
            type:"POST",
            dataType:"json",
            success:function(e){
                alert("in success");
                alert(e);
                console.log("success");
            },
            error:function(e)
            {
                alert("error is hit");
                alert(e);
                console.log(e);
            }
        });
     });

和php文件:

<?php

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 01 Jan 2016 00:00:00 GMT');

header('Content-type: application/json');
     $con=mysql_connect("localhost","root", "");
     mysql_select_db("tester",$con);


$name = $_GET['fullName'];
$email= $_GET['email'];
$mobile= $_GET['mobile'];
$nID = $_GET['nID'];
$zip = $_GET['zip'];
$prof= $_GET['prof'];
$query="INSERT INTO user_reg(fullName,email,mobile,nID,zip,prof) VALUES('$name','$email', '$mobile','$nID','$zip','$prof');";

echo $name;

   if(mysql_query($query))
   {
       echo "success";
   }else{
   echo  mysql_error();
   }

//}

?>

再次提前感谢:)

【问题讨论】:

标签: php jquery mysql database xampp


【解决方案1】:

您的数据对象包含一个额外的,,它不应该存在。另外,如果您要发送 json(请注意,我不确定您是否愿意,但标题建议这样做):

data: JSON.stringify({
        fullName: array[0],
        email: array[1],
        mobile: array[2],
        nID: array[3],
        zip: array[4],
        prof: array[5]
}),

您还需要设置 ajax 帖子的 contentType:

contentType: 'application/json',

【讨论】:

  • 我在 AJAX 代码中添加了 datatype: json 。我还需要添加 contentType 吗?
  • datatype 用于您接收的数据, contentType 用于您发送的数据
  • 我已经更改了你提到的必要更改以及 $_GET 到 $_POST 在 php 中的更改。但仍然没有任何结果。甚至没有空白行。
  • 好吧,老实说,我不确定您是否想使用 json 发送它。我不知道 php,但我猜 $_POST 在获取 json 对象时会遇到问题。删除我建议的所有内容(除了额外的,,不应该存在),然后重试:)
  • 谢谢。它起作用了:) 数据正在数据库中上传。
【解决方案2】:

我在您的 php 脚本中发现了一个问题。在您的 AJAX 调用中,您将 HTTP 请求声明为 post。但是在您的 php 脚本中,您使用 $_GET 方法来查找变量。使用 $_POST。

在您的 PHP 脚本中:

$name = $_GET['fullName']

变成

$name = $_POST['fullName'];

对所有变量执行此操作。

你得到一个空白行的原因是变量是空白的。通过将方法更改为 $_POST 您的脚本将能够找到变量

【讨论】:

  • 我已将提到的 $_GET 添加到 php 文件和 JS 文件中的 $_POST 更改中。但我仍然没有得到任何结果。我的数据库甚至没有更新空行!!!
猜你喜欢
  • 1970-01-01
  • 2018-06-18
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2019-04-27
  • 1970-01-01
  • 2023-01-13
相关资源
最近更新 更多