无法使用 ajax 将 php 文件插入数据库
Posted
技术标签:
【中文标题】无法使用 ajax 将 php 文件插入数据库【英文标题】:Can't get php file to insert into database using ajax 【发布时间】:2021-07-20 07:57:16 【问题描述】:我对 ajax 和 php 很陌生。我一直在尝试将在动态生成的 js 表中找到的文本插入到数据库中,但我无法让它工作。
我的主要问题是我让它在数据库中的不同表上工作,来自网站的不同页面。
<button id="saveScorecard">Save Scorecard</button>
上面触发了下面的js事件。
$(document).ready(function()
console.log("document loaded");
$('#saveScorecard').click(function()
//Get value of item name
var place_1 = $("#scorecard table tbody #tr0 td:first-child").html();
console.log($("#scorecard table tbody #tr0 td:first-child").html());
var place_2 = $("#scorecard table tbody #tr1 td:first-child").html();
var place_3 = $("#scorecard table tbody #tr2 td:first-child").html();;
var user_id = 1;
$('#saveScorecard').prop("disabled", true);
request = $.ajax(
url: "ajax/upload.php",
type: "post",
data: place1 : place_1,
place2 : place_2,
place3 : place_3,
userid : 1
);
console.log("sent data to php file");
request.always(function ()
$('#saveScorecard').prop("disabled", false);
);
);
);
上传.php:
<?php
require_once('../includes/db.php');
if($_POST['place_1_name'] && $_POST['place_2_name'] && $_POST['place_3_name'])
$query = "INSERT INTO scorecards (place_1_name, place_2_name, place_3_name, user_id)
VALUES
(:place_1, :place_2, :place_3, :user_id)";
$result = $DBH->prepare($query);
$result->bindParam(':place_1', $_POST['place1']);
$result->bindParam(':place_2', $_POST['place2']);
$result->bindParam(':place_3', $_POST['place3']);
$result->bindParam(':user_id', $_POST['userid']);
$result->execute();
echo $DBH->lastInsertId();
?>
如果有帮助,该网站将通过 plesk 托管。
请忽略所有表格单元格的混乱和单独定义,我一直致力于在整理之前尝试让它工作。
此外,有关 php 调试的任何提示都会很棒,因为有时错误不会记录在控制台或错误日志中。
感谢您的帮助!
【问题讨论】:
if($_POST['place_1_name']
-- 你不是从javascript发送place_1_name
,而是place1
(place2
和place3
相同)
谢谢!事实证明,我在最后改变了它,我想在我的测试过程中,我从一个问题转到另一个问题,直到它只是错误的变量名,现在肯定是在捂脸。 (我对这个网站真的很不好,但我认为你需要提交它作为我接受它的答案?)
认为您可以在这种情况下删除问题,因为这是一个错字而不是编码问题。
@user3783243 他们用来在***上写下问题的宝贵时间怎么样。
我将“答案”作为评论发布的原因是为了帮助 OP 快速解决问题。但我仍然投票结束这是一个错字。
【参考方案1】:
印刷错误
您的条件是检查您从未发送过的数据。
在您的 upload.php 文件中,您正在检查条件...
if($_POST['place_1_name'] && $_POST['place_2_name'] && $_POST['place_3_name'])
//your codes
但是您使用 ajax 发送数据是...
data: place1 : place_1,
place2 : place_2,
place3 : place_3,
userid : 1
您必须从 JQuery 或 PHP 更改密钥来解决 问题。
一旦您将密钥更改为您要发送的内容,您的问题就会得到解决
例如:
if($_POST['place1'] && $_POST['place2'] && $_POST['place3'])
//your codes
【讨论】:
以上是关于无法使用 ajax 将 php 文件插入数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 和 Ajax 创建动态表以将数据插入表中,如果不在视图或第一页中,则无法使用按钮
Ajax 无法正常工作。 PHP 无法在 SQL 中插入数据
如何使用 php jquery ajax 上传文件和插入数据