На данный момент я успешно вставляю информацию в базу данных (SQL, phpMyAdmin) через Home.js
, но проблема в том, что каждый раз, когда пользователь вводит информацию и нажимает submit
, она перенаправляется на мой demo.php
файл вместо Next.js
.
Другими словами, как я могу сделать так, чтобы после получения пользователем информации успешно входил в базу данных и переходил на следующую страницу?(Next.js
)?
Я знаю, <form action="http://localhost/demo_react/api/demo.php" method={"POST"} encType="multipart/form-data">
неизбежно приведет меня к demo.php
, но если я не буду использовать это, то ничто не будет отправлено на мою базу данных.
Что я делаю не так и как могуЯ это исправлю?
Вот Home.js
:
import React, { Component } from 'react';
import Next from '../Home/Next';
class Home extends Component {
constructor(props) {
super(props);
this.state = {
show: false
};
this.getPHP = this.getPHP.bind(this);
}
getPHP(e) {
this.setState({show: true});
let formData = new FormData();
fetch(`http://localhost/demo_react/api/demo.php`, {
method: 'POST',
body: formData
}).then(res => res.json())
.then(response => {
console.log('response');
console.log(response);
e.preventDefault();
});
}
render() {
const goNext = this.state.show;
if(goNext) {
return <Next/>;
}
return (
<div>
<form action="http://localhost/demo_react/api/demo.php" method={"POST"} encType="multipart/form-data">
<div className="form-group">
<label htmlFor="username">Email</label>
<input className="form-control" type="text" name="username"/>
</div>
<div className="form-group">
<label htmlFor="password">Password</label>
<input className="form-control" type="password" name="password"/>
</div>
<input className="btn btn-primary" type="submit" value="Login" onSubmit={e => this.getPHP(e)} name={"submit"}/>
</form>
</div>
);
}
}
export default Home;
Вот demo.php
:
$connection = mysqli_connect("localhost", "root", "", "loginapp");
$username = $_POST['username'];
$password = $_POST['password'];
if(isset($_POST['submit'])) {
$query = "INSERT INTO users(username, password) ";
$query .= " VALUES('$username', '$password')";
$result = mysqli_query($connection, $query);
if (!$result) {
die("Query failed" . mysqli_error($connection));
} else {
echo "check database";
}
}