首页 > 解决方案 > 从 SQL 数据库中检索数据并为现有客户填写 Web 表单上的字段

问题描述

我正在尝试根据公司当前使用的 Access 表单创建 Web 表单发票页面。它将由多个部分组成,客户信息、发票信息和计算。现在我正在处理第一部分,客户信息。我试图让它根据姓氏字段或电子邮件字段检查现有的客户信息。我已经搜索了如何从 SQL 数据库中检索数据以使用 PDO 填写 Web 表单字段,但所出现的只是如何使用 PDO 将数据从 Web 表单提交到 SQL 数据库。我有这个文件可以在不点击提交的情况下检查现有信息,它会检查光标何时离开该字段。我找到了一个 script.js 文件,它使用 javascript 和 ajax 来检查现有客户,但这只会返回用户已经存在,如果用户存在,我需要它来填写其他字段中的数据。如果有人能向我指出一篇文章或网站,我将非常感激,它可以向我展示如何将其从仅返回“用户已存在”更改为将信息填写到其他字段中。

我确实尝试将代码放在这里,但它一直告诉我我的格式错误。我尝试先放 3 ';s 并尝试先缩进 8 个空格,但它仍然告诉我我做错了。

谢谢!

编辑:好的尝试再次添加代码。

还是行不通。我点击 ctrl+k 并弹出“在此处添加代码”,然后我将代码粘贴进去,点击提交编辑,它告诉我代码格式错误。

标签: javascriptphp

解决方案


我同意@Mulli - 但让我试一试......

第一部分应该是最简单的(我以 SQLite 数据库为例):

$DBfullPath = "sqlite:/path/to/database.sqlite" ;
$searchMail = "my.name@provider.com" ;

// create DB handle
if ( !($dbh = new PDO($DBfullPath)) ) 
   throw new Exception("failed to create local DB handle") ;

// prepare SELECT query
$qry =<<<QRYDB
SELECT ID, data 
FROM theTable
WHERE email = :email
QRYDB;

// create prepared statement
$stmt  = $dbh->prepare($qry) ;

// run the prepared statement
if (false === $stmt->execute(array(":email" => $searchMail)) )
   throw new Exception("SELECT failed") ;

// fetch all data matching the search criteria from the statement
$allRows = $stmt->fetchAll(PDO::FETCH_ASSOC) ;

// release the DB handle
$dbh = NULL ;

// process search results
var_dump($allRows) ;

对于第二部分,我是否正确理解您希望根据用户正在进行的“实时”更改查看(部分)表单的实时更新?没有重新加载 PHP 页面?


推荐阅读