gpt4 book ai didi

php - AJAX 与 PHP/MySQL 对话

转载 作者:行者123 更新时间:2023-11-29 02:22:51 25 4
gpt4 key购买 nike

我正在努力让 AJAX 处理表单,将数据传递给某些 PHP/MySQL。

这是代码 - HTML:

<form id="<?=$applicationKey?>" name="<?=$applicationKey?>" action="./post.<?=$appNo?>.<?=$applicationKey?>.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="uID" value="<?=$uID?>">
<input type="hidden" name="uaID" value="<?=$uaID?>">
<input type="hidden" name="appID" value="<?=$appID?>">

<input type="text" id="input_1_1" name="input_1_1" placeholder="Name of the Applicant's Organisation" value="<?=$input_1_1?>" required>
<input type="text" id="input_1_2" name="input_1_2" placeholder="First Name" value="<?=$input_1_2?>" required>
<input type="text" id="input_1_3" name="input_1_3" placeholder="Last Name" value="<?=$input_1_3?>" required>

等等(我确定您不需要此处列出的整个表格)。我将此 JS 作为单独的 .js 文件加载到 HTML 的 header 中:

function doSend_1_1() {
$.post('./post.4.ConSupAp.php?appID=' + (appID) + '&ident=input_1_1', $('#input_1_1').serialize());
}

function doSend_1_2() {
$.post('./post.4.ConSupAp.php?appID=' + (appID) + '&ident=input_1_2', $('#input_1_2').serialize());
}

function doSend_1_3() {
$.post('./post.4.ConSupAp.php?appID=' + (appID) + '&ident=input_1_3', $('#input_1_3').serialize());
}

$("document").ready(function() {
$("#input_1_1").blur(doSend_1_1);
$("#input_1_2").blur(doSend_1_2);
$("#input_1_3").blur(doSend_1_3);
})

而且这种方式效果很好。当用户离开这三个字段中的任何一个时,它确实会尝试将数据传递给 PHP 并使其执行我希望它执行的操作。 PHP 看起来像这样:

<?php
include './conf/Funcs.php'; // Grab our functions
include './conf/DBconfig.php'; // Useful to have access to the database

$appID = $_GET['appID']; // identifies what entry we are talking to in the DB
$ident = $_GET['ident']; // defines what field is being posted

if(($ident) == "input_1_1") {
$userInput = $_POST['input_1_1'];
try {
$stmt = $conn->prepare("UPDATE $database.app_ConSupAp SET `organisation` = :userinput AND `lastModified` = :time WHERE `appID` = :appid");
$stmt->bindParam(':userinput', $userInput, PDO::PARAM_STR, 64);
$stmt->bindParam(':time', time(), PDO::PARAM_INT, 11);
$stmt->bindParam(':appid', $appID, PDO::PARAM_INT, 11);
$stmt->execute();
} catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
}
?>

因为我还没有成功地让它在第一个输入字段中工作,所以我还没有在 php 中添加部分来使用其他字段。所以是的,他们目前失踪了。

Firebug 报告没有问题,并且数据库中组织字段中的信息确实从之前预设的条目更改为“0”——不是我在输入字段中键入的内容。此外,即使将奇怪的 0 值输入到数据库中,time() 标记也不会更新。没有错误而且 Firebug 似乎很高兴,但我不知道为什么我的数据没有被正确插入。 Firebug 确实报告输入到文本字段中的任何内容都已正确传递给 php.ini 文件。有什么想法到底出了什么问题吗?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

这正在使用中,加载到原始页眉中。数据库是MySQL。所有与数据库的 php 通信都是使用 PDO 完成的。

最佳答案

问题似乎在那一行:

$stmt = $conn->prepare("UPDATE $database.app_ConSupAp SET `organisation` = :userinput AND `lastModified` = :time WHERE `appID` = :appid");

AND 运算符不应该在那个地方。用逗号替换它。

您也可以直接在查询中设置time(),因为它不需要准备

$stmt = $conn->prepare("UPDATE $database.app_ConSupAp SET organisation = :userinput , lastModified = '".time()."' WHERE appID = :appid");

关于php - AJAX 与 PHP/MySQL 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com