【问题标题】:Cant insert into table via ajax form无法通过ajax表单插入表格
【发布时间】:2017-04-17 05:06:53
【问题描述】:

我有这段代码,在测试两个值以插入 mysql 数据库时,它只是没有插入任何东西。我是混淆了值还是代码中有错误?使用 wamp 服务器。发生以下错误;

Undefined index: name in C:\wamp\www\info.php on line 3  
Undefined index: desc in C:\wamp\www\info.php on line 4  

但我尝试使用这些值但无法弄清楚。

index.html

   <html>
<head><title></title></head>
<body>

<form id="myForm" action="userInfo.php" method="post">
Name: <input type="text" name="name" /><br />
Age : <input type="text" name="age" /><br />
<button id="sub">Save</button>
</form>

<span id="result"></span>

<script src="jquery-1.8.1.min.js" type="text/javascript"></script>
<script src="my_script.js" type="text/javascript"></script>
</body>
</html>

用户信息.php

    <?php
         include_once('db.php');

        $name = $_POST['name'];
        $age = $_POST['age'];                  
        if(mysql_query("INSERT INTO user VALUES('$name', '$age')"))
          echo "Successfully Inserted";
        else
          echo "Insertion Failed";
?>

我的脚本部分

$("#sub").click( function() {
 $.post( $("#myForm").attr("action"),
         $("#myForm :input").serializeArray(),
         function(info){ $("#result").html(info);
  });
});
$("#myForm").submit( function() {
  return false;
});

function clearInput() {
    $("#myForm :input").each( function() {
       $(this).val('');
    });
}  

更新: 仍然没有修复。得到错误:

 Notice: Undefined index: name in C:\wamp\www\userInfo.php on line 4

Notice: Undefined index: age in C:\wamp\www\userInfo.php on line 5
Insertion Failed

【问题讨论】:

  • 危险:您使用的是 an obsolete database API,它是 PHP 中的 removed。您应该选择modern replacement。您很容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。
  • 1.不要在 HTML 代码中混淆单引号和双引号(为了整洁); 2.不要使用已弃用的mysql_*函数(改用MySQLi / PDO); 3. 注意 SQL 注入攻击。

标签: php mysql ajax database forms


【解决方案1】:

您能分享一下您正在使用的 javascript 代码吗?没有看到 ajax 调用很难提供帮助。

我的两分钱是使用 firebug 或本机浏览器网络流量观察器来检查发送到服务器的标头。您要确保在运行 ajax 请求时传入所有的 post 参数。

还要确保您的 ajax 请求是 POST 类型,并且您正在填写 $.post 调用的数据字段,例如:

$.post('url_here', { "name": "form_name_value here", "desc" : "desc_for_value_here" })

更新 对于 serializeArray 目标,只有表单元素: https://api.jquery.com/serializeArray/

喜欢:

$("#myForm").serializeArray()

【讨论】:

猜你喜欢
  • 2021-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 2013-01-20
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多