im试图使用Javscript fetch API从我的远程php中获取多个变量,这是我的php文件。
<?php
include 'config.php';
//$email = $_GET['email'];
try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$sql = "SELECT name, phone FROM searchResults WHERE email=:email";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare($sql);
$stmt->bindParam(":email", $_GET['email']);
$stmt->execute();
$row = $stmt->fetch();
$name = $row[0];
$number = $row[1];
echo $name;
echo $number;
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
?>
这是我的JavaScript
var email = appSettings.getString("email");
var url = "https://adekunletestprojects.000webhostapp.com/skog/getMyname.php?search=" + encodeURIComponent(email);
fetch(url).then((response) => response.text()).then((res) => {
viewModel.set("myName", res.name);
alert(res.name);
appSettings.set("myNme", res.name);
appSettings.set("myNumber", res.number);
}).catch((err) => {
});
帮忙
你应该返回JSON对象中的所有变量。
<?php
include 'config.php';
//$email = $_GET['email'];
try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$sql = "SELECT name, phone FROM searchResults WHERE email=:email";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare($sql);
$stmt->bindParam(":email", $_GET['email']);
$stmt->execute();
$row = $stmt->fetch();
$name = $row[0];
$number = $row[1];
echo json_encode(['name' => $name, 'number' => $number]);
} catch(PDOException $e) {
echo echo json_encode(['error' => ['text' => $e->getMessage() ]]);
}
?>
然后使用 response.json()
来用JavaScript解码。
var email = appSettings.getString("email");
var url = "https://adekunletestprojects.000webhostapp.com/skog/getMyname.php?search=" + encodeURIComponent(email);
fetch(url).then((response) => response.json()).then((res) => {
if (!res.error) {
viewModel.set("myName", res.name);
alert(res.name);
appSettings.set("myNme", res.name);
appSettings.set("myNumber", res.number);
} else {
alert(res.error.text);
}
}).catch((err) => {
而不是呼应变量,总是使用JSON。
echo $name;
echo $number;
变成
echo json_encode(["error"=>,"","name" => $name,"number"=>$number]);
也为你的错误做同样的事情。
echo json_encode(['error' => $e->getMessage()]);