1658014440
La liste déroulante dépendante dynamique restreint la sélection de l'utilisateur en fonction de la sélection précédente de la liste déroulante.
Dans ce tutoriel, je montre comment vous pouvez remplir automatiquement la liste déroulante avec les données de la base de données MySQL en utilisant JavaScript et PHP.
J'utilise 3 tables dans l'exemple -
table des pays (Enregistrer les enregistrements des pays) –
CREATE TABLE countries (
id serial PRIMARY KEY,
name varchar(80) NOT NULL
)
table des états (États du magasin des pays) –
CREATE TABLE states (
id serial PRIMARY KEY,
name varchar(80) NOT NULL,
country_id bigint NOT NULL
)
table des villes (Mémoriser les villes des états) –
CREATE TABLE cities (
id serial PRIMARY KEY,
name varchar(80) NOT NULL,
state_id bigint NOT NULL
)
Créez un nouveau config.php
fichier.
Code terminé
<?php
$host = "localhost"; /* Host name */$user = "root"; /* User */$password = "root"; /* Password */$dbname = "tutorial"; /* Database name */
// Create connection
$con = new mysqli($host, $user, $password, $dbname);
// Check connection
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
Récupérer tous les enregistrements de la countries
table et créer 3 <select>
éléments -
<select >
élément est d'afficher les fichiers récupérés countries
.Code terminé
<?php
include "config.php";
// Fetch countries
$sql = "SELECT * from countries order by name";
$stmt = $con->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
?>
<table>
<tr>
<td>Country</td>
<td>
<select id="country" onchange="getStates(this.value);">
<option value="0" >– Select Country –</option>
<?php
while ($row = $result->fetch_assoc() ){
$id = $row['id'];
$name = $row['name'];
echo "<option value='".$id."' >".$name."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>State</td>
<td>
<select id="state" onchange="getCities(this.value);" >
<option value="0" >– Select State –</option>
</select>
</td>
</tr>
<tr>
<td>City</td>
<td>
<select id="city" >
<option value="0" >– Select City –</option>
</select>
</td>
</tr>
</table>
Créer ajaxfile.php
un fichier.
Traiter 2 requêtes AJAX –
states
la table en fonction de la $country_id
valeur et les affecter à $result
. Bouclez $result
et initialisez $data
Array avec les touches id
et .name
Retour $data
au format JSON.
cities
la table en fonction de la $state_id
valeur et les attribuer à $result
. Bouclez $result
et initialisez $data
Array avec les touches id
et .name
Retour $data
au format JSON.
Code terminé
<?php
include 'config.php';
// Read POST data
$postData = json_decode(file_get_contents("php://input"));
$request = "";
if(isset($postData->request)){
$request = $postData->request;
}
// Get states
if($request == 'getStates'){
$country_id = 0;
$result = array();$data = array();
if(isset($postData->country_id)){
$country_id = $postData->country_id;
$sql = "SELECT * from states WHERE country_id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("i", $country_id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()){
$id = $row['id'];
$name = $row['name'];
$data[] = array(
"id" => $id,
"name" => $name
);
}
}
echo json_encode($data);
die;
}
// Get cities
if($request == 'getCities'){
$state_id = 0;
$result = array();$data = array();
if(isset($postData->state_id)){
$state_id = $postData->state_id;
$sql = "SELECT * from cities WHERE state_id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("i", $state_id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()){
$id = $row['id'];
$name = $row['name'];
$data[] = array(
"id" => $id,
"name" => $name
);
}
}
echo json_encode($data);
die;
}
Créer 2 fonctions –
Liste déroulante vide de l'état et de la ville. Envoyez la requête AJAX POST à ajaxfile.php
, passez {request: 'getStates', country_id: country_id}
en tant que data
et définissez dataType: 'json'
.
En cas de réussite de la boucle de rappel response
et de l'ajout <option >
dans la liste déroulante d'état.
Videz la #city
liste déroulante et envoyez la requête AJAX POST à ajaxfile.php
, passez {request: 'getCities', state_id: state_id}
en tant que data
et définissez dataType: 'json'
.
En cas de rappel réussi, bouclez response
et ajoutez <option >
dans la liste déroulante de la ville.
Code terminé
function getStates(country_id){
// Empty the dropdown
var stateel = document.getElementById('state');
var cityel = document.getElementById('city');
stateel.innerHTML = "";
cityel.innerHTML = "";
var stateopt = document.createElement('option');
stateopt.value = 0;
stateopt.innerHTML = '-- Select State --';
stateel.appendChild(stateopt);
var cityopt = document.createElement('option');
cityopt.value = 0;
cityopt.innerHTML = '-- Select City --';
cityel.appendChild(cityopt);
// AJAX request
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "ajaxfile.php", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = JSON.parse(this.responseText);
var len = 0;
if(response != null){
len = response.length;
}
if(len > 0){
// Read data and create <option >
for(var i=0; i<len; i++){
var id = response[i].id;
var name = response[i].name;
// Add option to state dropdown
var opt = document.createElement('option');
opt.value = id;
opt.innerHTML = name;
stateel.appendChild(opt);
}
}
}
};
var data = {request:'getStates',country_id: country_id};
xhttp.send(JSON.stringify(data));
}
function getCities(state_id){
// Empty the dropdown
var cityel = document.getElementById('city');
cityel.innerHTML = "";
var cityopt = document.createElement('option');
cityopt.value = 0;
cityopt.innerHTML = '-- Select City --';
cityel.appendChild(cityopt);
// AJAX request
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "ajaxfile.php", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = JSON.parse(this.responseText);
var len = 0;
if(response != null){
len = response.length;
}
if(len > 0){
// Read data and create <option >
for(var i=0; i<len; i++){
var id = response[i].id;
var name = response[i].name;
// Add option to city dropdown
var opt = document.createElement('option');
opt.value = id;
opt.innerHTML = name;
cityel.appendChild(opt);
}
}
}
};
var data = {request:'getCities',state_id: state_id};
xhttp.send(JSON.stringify(data));
}
Suivez les mêmes étapes pour remplir automatiquement plusieurs listes déroulantes.
Si les données ne s'affichent pas dans la liste déroulante lorsque vous sélectionnez un pays ou un état, utilisez l'onglet réseau du navigateur pour déboguer. Vérifiez à nouveau les requêtes SQL et les valeurs POST.
Source : https://makitweb.com
1658014440
La liste déroulante dépendante dynamique restreint la sélection de l'utilisateur en fonction de la sélection précédente de la liste déroulante.
Dans ce tutoriel, je montre comment vous pouvez remplir automatiquement la liste déroulante avec les données de la base de données MySQL en utilisant JavaScript et PHP.
J'utilise 3 tables dans l'exemple -
table des pays (Enregistrer les enregistrements des pays) –
CREATE TABLE countries (
id serial PRIMARY KEY,
name varchar(80) NOT NULL
)
table des états (États du magasin des pays) –
CREATE TABLE states (
id serial PRIMARY KEY,
name varchar(80) NOT NULL,
country_id bigint NOT NULL
)
table des villes (Mémoriser les villes des états) –
CREATE TABLE cities (
id serial PRIMARY KEY,
name varchar(80) NOT NULL,
state_id bigint NOT NULL
)
Créez un nouveau config.php
fichier.
Code terminé
<?php
$host = "localhost"; /* Host name */$user = "root"; /* User */$password = "root"; /* Password */$dbname = "tutorial"; /* Database name */
// Create connection
$con = new mysqli($host, $user, $password, $dbname);
// Check connection
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
Récupérer tous les enregistrements de la countries
table et créer 3 <select>
éléments -
<select >
élément est d'afficher les fichiers récupérés countries
.Code terminé
<?php
include "config.php";
// Fetch countries
$sql = "SELECT * from countries order by name";
$stmt = $con->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
?>
<table>
<tr>
<td>Country</td>
<td>
<select id="country" onchange="getStates(this.value);">
<option value="0" >– Select Country –</option>
<?php
while ($row = $result->fetch_assoc() ){
$id = $row['id'];
$name = $row['name'];
echo "<option value='".$id."' >".$name."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>State</td>
<td>
<select id="state" onchange="getCities(this.value);" >
<option value="0" >– Select State –</option>
</select>
</td>
</tr>
<tr>
<td>City</td>
<td>
<select id="city" >
<option value="0" >– Select City –</option>
</select>
</td>
</tr>
</table>
Créer ajaxfile.php
un fichier.
Traiter 2 requêtes AJAX –
states
la table en fonction de la $country_id
valeur et les affecter à $result
. Bouclez $result
et initialisez $data
Array avec les touches id
et .name
Retour $data
au format JSON.
cities
la table en fonction de la $state_id
valeur et les attribuer à $result
. Bouclez $result
et initialisez $data
Array avec les touches id
et .name
Retour $data
au format JSON.
Code terminé
<?php
include 'config.php';
// Read POST data
$postData = json_decode(file_get_contents("php://input"));
$request = "";
if(isset($postData->request)){
$request = $postData->request;
}
// Get states
if($request == 'getStates'){
$country_id = 0;
$result = array();$data = array();
if(isset($postData->country_id)){
$country_id = $postData->country_id;
$sql = "SELECT * from states WHERE country_id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("i", $country_id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()){
$id = $row['id'];
$name = $row['name'];
$data[] = array(
"id" => $id,
"name" => $name
);
}
}
echo json_encode($data);
die;
}
// Get cities
if($request == 'getCities'){
$state_id = 0;
$result = array();$data = array();
if(isset($postData->state_id)){
$state_id = $postData->state_id;
$sql = "SELECT * from cities WHERE state_id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("i", $state_id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()){
$id = $row['id'];
$name = $row['name'];
$data[] = array(
"id" => $id,
"name" => $name
);
}
}
echo json_encode($data);
die;
}
Créer 2 fonctions –
Liste déroulante vide de l'état et de la ville. Envoyez la requête AJAX POST à ajaxfile.php
, passez {request: 'getStates', country_id: country_id}
en tant que data
et définissez dataType: 'json'
.
En cas de réussite de la boucle de rappel response
et de l'ajout <option >
dans la liste déroulante d'état.
Videz la #city
liste déroulante et envoyez la requête AJAX POST à ajaxfile.php
, passez {request: 'getCities', state_id: state_id}
en tant que data
et définissez dataType: 'json'
.
En cas de rappel réussi, bouclez response
et ajoutez <option >
dans la liste déroulante de la ville.
Code terminé
function getStates(country_id){
// Empty the dropdown
var stateel = document.getElementById('state');
var cityel = document.getElementById('city');
stateel.innerHTML = "";
cityel.innerHTML = "";
var stateopt = document.createElement('option');
stateopt.value = 0;
stateopt.innerHTML = '-- Select State --';
stateel.appendChild(stateopt);
var cityopt = document.createElement('option');
cityopt.value = 0;
cityopt.innerHTML = '-- Select City --';
cityel.appendChild(cityopt);
// AJAX request
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "ajaxfile.php", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = JSON.parse(this.responseText);
var len = 0;
if(response != null){
len = response.length;
}
if(len > 0){
// Read data and create <option >
for(var i=0; i<len; i++){
var id = response[i].id;
var name = response[i].name;
// Add option to state dropdown
var opt = document.createElement('option');
opt.value = id;
opt.innerHTML = name;
stateel.appendChild(opt);
}
}
}
};
var data = {request:'getStates',country_id: country_id};
xhttp.send(JSON.stringify(data));
}
function getCities(state_id){
// Empty the dropdown
var cityel = document.getElementById('city');
cityel.innerHTML = "";
var cityopt = document.createElement('option');
cityopt.value = 0;
cityopt.innerHTML = '-- Select City --';
cityel.appendChild(cityopt);
// AJAX request
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "ajaxfile.php", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = JSON.parse(this.responseText);
var len = 0;
if(response != null){
len = response.length;
}
if(len > 0){
// Read data and create <option >
for(var i=0; i<len; i++){
var id = response[i].id;
var name = response[i].name;
// Add option to city dropdown
var opt = document.createElement('option');
opt.value = id;
opt.innerHTML = name;
cityel.appendChild(opt);
}
}
}
};
var data = {request:'getCities',state_id: state_id};
xhttp.send(JSON.stringify(data));
}
Suivez les mêmes étapes pour remplir automatiquement plusieurs listes déroulantes.
Si les données ne s'affichent pas dans la liste déroulante lorsque vous sélectionnez un pays ou un état, utilisez l'onglet réseau du navigateur pour déboguer. Vérifiez à nouveau les requêtes SQL et les valeurs POST.
Source : https://makitweb.com
1615040237
PHP jquery ajax POST request with MySQL. In this tutorial, you will learn how to create and submit a simple form in PHP using jQuery ajax post request. And how to submit a form data into MySQL database without the whole page refresh or reload. And also you will learn how to show an error message to the user if the user does not fill any form field.
And this tutorial also guide on how to send data to MySQL database using AJAX + jQuery + PHP without reloading the whole page and show a client-side validation error message if it has an error in the form.
Just follow the few below steps and easily create and submit ajax form in PHP and MySQL with client-side validation.
https://www.tutsmake.com/php-jquery-ajax-post-tutorial-example/
#jquery ajax serialize form data example #submit form using ajax in php example #save form data using ajax in php #how to insert form data using ajax in php #php jquery ajax form submit example #jquery ajax and jquery post form submit example with php
1597487472
Here, i will show you how to populate country state city in dropdown list in php mysql using ajax.
You can use the below given steps to retrieve and display country, state and city in dropdown list in PHP MySQL database using jQuery ajax onchange:
https://www.tutsmake.com/country-state-city-database-in-mysql-php-ajax/
#country state city drop down list in php mysql #country state city database in mysql php #country state city drop down list using ajax in php #country state city drop down list using ajax in php demo #country state city drop down list using ajax php example #country state city drop down list in php mysql ajax
1659425280
AJAX est le seul moyen qui permet de communiquer côté client avec le côté serveur.
Il est plus facile d'envoyer des requêtes AJAX à l'aide de bibliothèques ou de frameworks JavaScript. Mais il est également bon de savoir comment envoyer une requête AJAX avec du Javascript simple.
Utilisez l'objet XMLHttpRequest pour communiquer avec le serveur.
Dans ce tutoriel, je montre comment vous pouvez envoyer des requêtes GET et POST AJAX avec JavaScript et gérer la requête avec PHP.
Créer employee
une table et ajouter des enregistrements.
CREATE TABLE `employee` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`emp_name` varchar(80) NOT NULL,
`salary` varchar(20) NOT NULL,
`email` varchar(80) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Créez un config.php
pour la connexion à la base de données.
Code terminé
<?php
$host = "localhost"; /* Host name */$user = "root"; /* User */$password = ""; /* Password */$dbname = "tutorial"; /* Database name */
$con = mysqli_connect($host, $user, $password,$dbname);
// Check connection
if (!$con) {
die("Connection failed: " . mysqli_connect_error());
}
Créez 3 éléments de texte d'entrée pour saisir le nom, le salaire et l'e-mail. Et un élément de bouton.
Ajout onclick
d'un événement sur le bouton qui appelle insertNewEmployee()
la fonction.
Répertorier les enregistrements dans l' <table id='emptTable'>
utilisation de JavaScript et AJAX.
Code terminé
<div>
Name: <input type="text" id='txt_name'> <br>
Salary: <input type="text" id='txt_salary'> <br>
Email: <input type="text" id='txt_email'> <br>
<input type="button" id="btn_submit" value="Submit" onclick="insertNewEmployee();">
</div>
<table id='empTable' border='1'>
<thead>
<tr>
<th>Name</th>
<th>Salary</th>
<th>Email</th>
</tr>
</thead>
<tbody></tbody>
</table>
Créer 'ajaxfile.php'
un fichier pour gérer la requête AJAX.
Par exemple, je gère les requêtes GET et POST dans un seul fichier.
Attribué 2 à $request
.
Requête GET (récupérer des enregistrements)
Vérifiez si $_GET['request']
est défini ou non, puis attribuez $_GET['request']
-le à $request
.
Si $request == 1
alors récupérez tous les enregistrements de employee
la table et attribuez-les à $employeeData
. Boucle sur les enregistrements récupérés.
Initialisez $response
avec les clés id, emp_name, salaire et e-mail.
Renvoie $response
un tableau au format JSON.
Requête POST (insérer un enregistrement)
Si $request == 2
alors lisez les valeurs POST en utilisant json_decode(file_get_contents("php://input"))
.
Attribuer des valeurs aux variables et préparer la requête INSERT.
Si la requête INSERT est exécutée avec succès, retournez 1
sinon 0
.
Code terminé
<?php
include "config.php";
$request = 2;
// Read $_GET value
if(isset($_GET['request'])){
$request = $_GET['request'];
}
// Fetch records
if($request == 1){
// Select record
$sql = "SELECT * FROM employee";
$employeeData = mysqli_query($con,$sql);
$response = array();
while($row = mysqli_fetch_assoc($employeeData)){
$response[] = array(
"id" => $row['id'],
"emp_name" => $row['emp_name'],
"salary" => $row['salary'],
"email" => $row['email'],
);
}
echo json_encode($response);
exit;
}
// Insert record
if($request == 2){
// Read POST data
$data = json_decode(file_get_contents("php://input"));
$name = $data->name;
$salary = $data->salary;
$email = $data->email;
// Insert record
$sql = "insert into employee(emp_name,salary,email) values('".$name."',".$salary.",'".$email."')";
if(mysqli_query($con,$sql)){
echo 1;
}else{
echo 0;
}
exit;
}
Utilisez XMLHttpRequest
l'objet pour envoyer une requête AJAX.
.open () - Les méthodes prennent 3 paramètres -
ajaxfile.php?name=yogesh&city=bhopal
.true
ou false
. La valeur par défaut est true
. Passe true
pour requête asynchrone et false
pour requête synchrone..setRequestHeader() – Cette méthode est utilisée pour définir Content-Type
. Par défaut, 'application/x-www-form-urlencoded'
le type de contenu est défini. Vous pouvez modifier sa valeur, par exemple – application/json
, multipart/form-data
, etc.
.onreadystatechange - Cette propriété appelle le changement d'état de la demande. Attribuez une fonction anonyme pour traiter la réponse. Si this.readyState == 4 && this.status == 200
signifie que la réponse du serveur est prête à être traitée.
.send() - Cette méthode envoie une requête AJAX. Il est également utilisé pour envoyer des données.
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "ajaxfile.php?request=1", true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = this.responseText;
}
};
xhttp.send();
Syntaxe ci-dessus avec jQuery
$.ajax({ url : 'ajaxfile.php?request=1', type : 'get', success : function(response){ } });
application/x-www-form-urlencoded; charset=UTF-8
est un type de contenu par défaut, mais vous pouvez utiliser n'importe quel autre type, par exemple – application/json
, multipart/form-data
, etc.
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "ajaxfile.php", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response
var response = this.responseText;
}
};
var data = {name:'yogesh',salary: 35000,email: 'yogesh@makitweb.com'};
xhttp.send(JSON.stringify(data));
Syntaxe ci-dessus avec jQuery
$.ajax({
url: 'ajaxfile.php',
type: 'post',
data: {name:'yogesh',salary: 35000,email: 'yogesh@makitweb.com'},
success: function(response){
}
});
Créer 2 fonctions –
Créer un objet de XMLHttpRequest
. Spécifiez la requête GET et le chemin du fichier AJAX avec le paramètre ( 'ajaxfile.php?request=1'
) dans la .open()
méthode. Définissez Content-type
et gérez la réponse du serveur avec onreadystatechange
la propriété.
Analysez l' this.responseText
objet to JSON, sélectionnez <table id='empTable'> <tbody>
-le et videz-le.
Boucle sur le response
pour lire les valeurs. Créez un nouvel élément de ligne de tableau et attribuez une valeur de réponse dans la cellule.
Envoyez la requête en appelant la send()
méthode.
Lisez les valeurs des zones de texte et affectez-les dans des variables. Si les variables ne sont pas vides, créez un data
objet JSON. Initialise data
l'objet avec les valeurs de la zone de texte.
Créez XMLHttpRequest
un objet et spécifiez la requête POST et le chemin du fichier AJAX ( 'ajaxfile.php'
) dans la .open()
méthode. Définir Content-type
et 'application/json'
gérer la réponse du serveur avec onreadystatechange
la propriété.
Attribuer this.responseText
en response
. Si response == 1
alors alertez un message et appelez loadEmployees()
la fonction pour récupérer les enregistrements.
Code terminé
loadEmployees();
// Load records with GET request
function loadEmployees() {
var xhttp = new XMLHttpRequest();
// Set GET method and ajax file path with parameter
xhttp.open("GET", "ajaxfile.php?request=1", true);
// Content-type
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
// call on request changes state
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Parse this.responseText to JSON object
var response = JSON.parse(this.responseText);
// Select <table id='empTable'> <tbody>
var empTable =
document.getElementById("empTable").getElementsByTagName("tbody")[0];
// Empty the table <tbody>
empTable.innerHTML = "";
// Loop on response object
for (var key in response) {
if (response.hasOwnProperty(key)) {
var val = response[key];
// insert new row
var NewRow = empTable.insertRow(0);
var name_cell = NewRow.insertCell(0);
var username_cell = NewRow.insertCell(1);
var email_cell = NewRow.insertCell(2);
name_cell.innerHTML = val['emp_name'];
username_cell.innerHTML = val['salary'];
email_cell.innerHTML = val['email'];
}
}
}
};
// Send request
xhttp.send();
}
// Insert new record with POST request
function insertNewEmployee() {
var name = document.getElementById('txt_name').value;
var salary = document.getElementById('txt_salary').value;
var email = document.getElementById('txt_email').value;
if(name != '' && salary !='' && email != ''){
var data = {name: name,salary: salary,email: email};
var xhttp = new XMLHttpRequest();
// Set POST method and ajax file path
xhttp.open("POST", "ajaxfile.php", true);
// call on request changes state
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
if(response == 1){
alert("Insert successfully.");
loadEmployees();
}
}
};
// Content-type
xhttp.setRequestHeader("Content-Type", "application/json");
// Send request with data
xhttp.send(JSON.stringify(data));
}
}
Avec l'utilisation de l'objet XMLHttpRequest, envoyez une requête AJAX.
Dans la requête GET, transmettez directement les données avec un nom de fichier comme - ajaxfile.php?name=yogesh&city=bhopal
et dans la requête POST, transmettez vos données dans la send()
méthode.
Source : https://makitweb.com
1659379560
Le téléchargement de fichiers est une exigence de base dans un site Web. Cela se fait à l'aide d'un script côté serveur.
Nécessite de recharger la page après la soumission du formulaire pour exécuter le script.
Avec AJAX, le script côté client interagit avec le script côté serveur et exécute l'action sans recharger la page.
Dans ce tutoriel, je montre comment vous pouvez télécharger un fichier en utilisant JavaScript AJAX et PHP.
Créez un élément de fichier et de bouton. Ajout onclick
d'un événement sur le bouton qui appelle uploadFile()
la fonction.
Code terminé
<div >
<input type="file" name="file" id="file">
<input type="button" id="btn_uploadfile"
value="Upload"
onclick="uploadFile();" >
</div>
Créez un ajaxfile.php
fichier et un upload
dossier pour stocker les fichiers.
Vérifiez si $_FILES
Array est défini ou non. S'il est défini, attribuez - $_FILES['file']['name']
le à $filename
, nom du fichier avec l'emplacement de téléchargement dans $location
la variable.
Obtenez l'extension de fichier et attribuez des extensions de fichier valides dans $valid_ext
Array.
Vérifiez si l'extension de fichier existe dans $valid_ext
Array. S'il existe, téléchargez le fichier et attribuez 1 à $response
s'il est téléchargé avec succès.
Retour $response
.
Code terminé
<?php
if(isset($_FILES['file']['name'])){
// file name
$filename = $_FILES['file']['name'];
// Location
$location = 'upload/'.$filename;
// file extension
$file_extension = pathinfo($location, PATHINFO_EXTENSION);
$file_extension = strtolower($file_extension);
// Valid extensions
$valid_ext = array("pdf","doc","docx","jpg","png","jpeg");
$response = 0;
if(in_array($file_extension,$valid_ext)){
// Upload file
if(move_uploaded_file($_FILES['file']['tmp_name'],$location)){
$response = 1;
}
}
echo $response;
exit;
}
Créer uploadFile()
une fonction qui appelle le clic sur le bouton Télécharger.
Lecture files
d'un file
élément. Si un fichier est sélectionné alors créez un objet sinon, message FormData
d'alerte ."Please select a file"
Ajouter files[0]
pour 'file'
saisir formData
.
Pour envoyer une requête AJAX, créez un objet de XMLHttpRequest
. Avec open()
la méthode, définissez la méthode de demande sur "POST"
et le chemin du fichier AJAX.
Gérer le rappel réussi d'AJAX avec la onreadystatechange()
méthode. Affecter this.responseText
dans response
la variable. Si response == 1
alors message d'alerte "Upload successfully."
sinon, "File not uploaded."
message d'alerte.
Passer l' formData
objet avec la send()
méthode.
Code terminé
// Upload file
function uploadFile() {
var files = document.getElementById("file").files;
if(files.length > 0 ){
var formData = new FormData();
formData.append("file", files[0]);
var xhttp = new XMLHttpRequest();
// Set POST method and ajax file path
xhttp.open("POST", "ajaxfile.php", true);
// call on request changes state
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
if(response == 1){
alert("Upload successfully.");
}else{
alert("File not uploaded.");
}
}
};
// Send request with data
xhttp.send(formData);
}else{
alert("Please select a file");
}
}
Envoyez l'instance de fichier à l'aide de l'objet FormData et dans le fichier AJAX, accédez-y à l'aide du tableau $_FILES.
Source : https://makitweb.com