我在 PHP 和 React 上苦苦掙扎。我正忙于從后端獲取資料并將其顯示在前端,我有來自后端的電子郵件來顯示它。但是,我想要的是登錄用戶的名字并將其顯示在我的前端。任何幫助,將不勝感激。
謝謝!
下面是我的代碼
JS
const [receptionist, setReceptionist] = useState({
email: sessionStorage.getItem('activeUser'),
name: ''
})
return (
<div className='page'>
<div className="leftPage">
<Nav/>
</div>
<div className="middlePage">
<h1>Welcome, <span>{name}</span></h1>
<Date />
<div className='welcome'>
<p>Welcome to your management portal !
Manage all doctor’s appointments right here and look at upcoming appointments.
</p>
<img src={Dash} width={250}/>
</div>
<CalendarCom/>
{/* <div className="footerImg">
<img src={Logo}/>
</div> */}
</div>
<div className="rightPage">
<AppointmentsCom/>
</div>
</div>
);
PHP
<?php
include 'db_connection.php';
header('Access-Control-Origin: *');
header('Access-Control-Headers: *');
$request_body = file_get_contents('php://input');
$data = json_decode($request_body);
$name = $data->activeUser;
if($name === ""){
echo "";
} else {
$sql = "SELECT * FROM receptionists WHERE name = '$name';";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if($resultCheck > 0){
// $emparray = array();
// while($row = mysqli_fetch_assoc($result)){
// $emparray[] = $row;
// }
// echo json_encode($emparray);
} else {
echo "false";
}
}
?>
uj5u.com熱心網友回復:
您需要做的是使用 useEffect 然后在您的 PHP 中創建一個關聯陣列,該陣列將獲取 sessionStorage 電子郵件,將其與您的 MySQL 資料庫進行比較并找到與之關聯的所有資料。
Javascript
const [receptionist, setReceptionist] = useState({
email: sessionStorage.getItem('activeUser'),
name: ''
})
useEffect(() => {
axios.post('http://localhost:8888/dbName/phpname.php', JSON.stringify(receptionist))
.then((res) => {
console.log(res.data[0]);
setReceptionist({
email: res.data[0].email,
name: res.data[0].name
});
})
}, []);
return (
<div className='page'>
<div className="leftPage">
<Nav/>
</div>
<div className="middlePage">
<h1>Welcome, <span>{name}</span></h1>
<Date />
<div className='welcome'>
<p>Welcome to your management portal !
Manage all doctor’s appointments right here and look at upcoming appointments.
</p>
<img src={Dash} width={250}/>
</div>
<CalendarCom/>
{/* <div className="footerImg">
<img src={Logo}/>
</div> */}
</div>
<div className="rightPage">
<AppointmentsCom/>
</div>
</div>
);
PHP
include 'db_connection.php';
header('Access-Control-Origin: *');
header('Access-Control-Headers: *');
$request_body = file_get_contents('php://input');
$data = json_decode($request_body, true); // true makes associative array
$email = $data['email'];
if($email)
{
$sql = "SELECT * FROM receptionists WHERE email = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $email);
$stmt->exexute();
$result = $stmt->get_result();
$emparray = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($emparray);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486264.html
下一篇:來自資料庫的PHP自動導航欄
