我正在尝试使用HTTP / JavaScript等运行我已经运行了几年的Angular Material中的应用程序。该应用程序可以称为数据库类型应用程序,在远程服务器上的MySQL数据库上具有CRUD操作它在App和数据库之间使用PHP。
从JSON中从服务器返回的几个表的范围受到从JavaScript发送的参数的限制,然后由PHP接收,并在Select语句的where子句中使用,如此代码片段:
$registration = $_POST['REGISTRATION'] ;
$query = "SELECT sysid, REGISTRATION, TYPE, COMPONENT, SERIAL, PART_NUMBER FROM status_hours WHERE REGISTRATION='$registration' ";
此HTTP / JavaScript / PHP代码运行正常,但我想在Angular Material中复制应用程序。
使用Angular Material我可以完美地检索JSON中的recors,但问题是我无法发送参数并使其工作,以便可以在PHP的WHERE子句中使用它。
以下是应用程序中的类型脚本代码,它从服务器获取行表。
const url = 'http://mydatabase.com/angular/php/status_hours.php' ;
const options = { params: new HttpParams().set('REGISTRATION', this.REGISTRATION) } ;
this.http.get<Hours[]> (url, options)
.subscribe(hours =>
{
console.log(hours) ;
this.dataSource.data = hours ;
} ) ;
这是我尝试过的PHP代码,用于接收名为REGISTRATION的参数,以便可以在WHERE语句中使用。
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$registration = $request->REGISTRATION;
问题是Angular应用程序没有发送参数,或者PHP没有收到它,因此可以在WHERE子句中使用它。
我可以硬编码用于汇总目的,$ registration =&#39; hardCodedData&#39; ;它将返回有效的JSON数据。
感谢您的帮助。
答案 0 :(得分:0)
以下是关于从Angular / TypeScript将参数传递给PHP的正确过程的问题的答案。
PHP代码必须包含$ registration = $ _GET [&#39; REGISTRATION&#39;];不是$ registration = $ _POST [&#39; REGISTRATION&#39;];这对我来说是HTML / JavaScript,我使用的是已发布的示例代码。注意,REGISTRATION只是Angular发送的参数的名称。
感谢大家的帮助!
答案 1 :(得分:0)
这是我用来传递多个参数的链接。当然也适用相同的PHP代码。