I’m using a page (file1.php) to submit a specific number to another php file (file2.php) this second PHP file as to take data from a database and extract information then return it to file1.php, here is file2.php
<?php
require('../model/encapsulation.php');
require('../model/connection.php');
require('../model/bunchofmethod.php');
if (isset($_POST['SpecificNumber'])) {
$NS = $_POST['SpecificNumber'];
$info = execRequest::folderInfoFromNS($NS, $dbh);
$name = $info['name'];
$firstName = $info['firstName'];
$UID = $info['UID'];
$idFound = json_encode(array($name, $firstName, $UID));
}
?>
<!DOCTYPE HTML>
<html lang="fr">
<head>
<script src="../JS/jquery-3.4.1.min.js"></script>
<?php
if (isset($idFound)){
?>
<script>
$(document).ready(function () {
$.post("../view/file1.php",
{
idFound: <?php echo $idFound?>,
searchDone: 1
});
})
</script>
<?php
}
?>
</head>
</html>
when I submit a specific number with file1 (it is only a regular form and a php part which vardump $_POST['idFound']
if it is set) I’m redirected to file2 but not redirected again to file1 , why ?
Advertisement
Answer
I think you may have misunderstood the process here.
If you want file1 to make a request to file2, and file2 to send a response, then it makes no sense to write code in file2 which makes an AJAX request to file1. You don’t need a new request to file1 (because that creates a new call to a new instance of file1’s script). What you need is simply for file2 to provide a response to the request coming from the original instance of file1.
So if you want file2 to respond and return the JSON data to file1, then simply echo it:
$idFound = json_encode(array($name, $firstName, $UID));
echo $idFound;
(And get rid of all the HTML and jQuery code).
The echoed data will then be returned as the response to file1’s request.