Reputation: 147
how can I redirect the user to another php page based on the button he is pressing? For example .. I want that once loaded the page, in it are generated buttons containing the "id" of the table taken from a database ... At the click of the button you are redirected to a page in which there are textbox with the fields belonging to the table id ..
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT idCantiere,nomeCantiere,codiceCommessa,indirizzoCantiere FROM Cantiere";
$result = $conn->query($sql);
echo'<h1> <font face="verdana" color="green">Quale Cantiere desideri Modificare?</font> </h1>';
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo'<br><br><br>';
echo'<a href="#" onClick=navigaButton(); class="myButton" alt="">' . $row["nomeCantiere"] . '</a>';
// echo '<a href="#" class="rainbow-button" alt="' . $row["nomeCantiere"] . '"></a>';
//''<input type="button" value="' . $row["nomeCantiere"] . '" />'
}
echo'<br><br><br>';
echo '<a href="../pagineHtml/inserimento/inserimentoGenerale/inserimentoCantiere.php" class="myButton" alt="Nuovo Cantiere +">Nuovo Cantiere +</a>';
} else {
echo "0 results";
}
$idCantierePerSelect = $_POST["idCantiere"];
global = $idCantierePerSelect;
function navigaButton()
{
// FUNCTION That redirect to the page
};
$conn->close();
?>
So I have to pick up the "idCantiere" and I have to make sure that by clicking on the button on the page that opens me there are textBox with the data of the table of the "idCantiere"
Upvotes: 1
Views: 3640
Reputation: 35
I think you are confusing the static html between dynamic server page.
1.PHP is responsible for fecthing data from database or server file system ,and send html tags to front end
2.the browser receives strings from php , and parse the strings to html elements ,finally starts to run javascript
If you want to redirect page.
In php header('Location: /your/path')
In javascript , window.location.href='/your/path'
Upvotes: 1
Reputation: 33813
Very quickly written and not tested - you could perhaps do like this. The function has to be javascript to interact with the client's actions ( ie: button press ) but the processing of the task is done by php. So, in the loop pass the ID of the record to the function as an inline argument and reload the same page with a new querystring. PHP will process the querystring, find the ID and then do a different database lookup to find the page that you want to redirect to.
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) die("Connection failed");
/*
This section should be ignored when page loads normally
but will be processed when the `navigaButton` is called
and the url changes.
*/
if( $_SERVER['REQUEST_METHOD']=='GET' && isset( $_GET['action'],$_GET['id'] ) ){
$sql='select NEWLOCATION from TABLE where ID=?';
$stmt=$conn->prepare( $sql );
if( $stmt ){
$stmt->bind_param('i',$id);
$id=filter_input( INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT );
$stmt->execute();
$stmt->store_result();
$stmt->bind_result( $url );
$stmt->close();
/* read the recordset and .... */
exit( header( 'Location: '.$url) );
}
}
?>
<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>.... </title>
<script>
function navigaButton(id){
location.search='action=redirect&id='+id
};
</script>
</head>
<body>
<?php
$sql = "SELECT idCantiere,nomeCantiere,codiceCommessa,indirizzoCantiere FROM Cantiere";
$result = $conn->query($sql);
echo'<h1> <font face="verdana" color="green">Quale Cantiere desideri Modificare?</font> </h1>';
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo'
<br><br><br>
<a href="#" onClick=navigaButton('.$row['idCantiere'].'); class="myButton" alt="">' . $row["nomeCantiere"] . '</a>
<a href="#" class="rainbow-button" alt="' . $row["nomeCantiere"] . '"></a>';
}
echo'<br><br><br>
<a href="../pagineHtml/inserimento/inserimentoGenerale/inserimentoCantiere.php" class="myButton" alt="Nuovo Cantiere +">Nuovo Cantiere +</a>';
} else {
echo "0 results";
}
$idCantierePerSelect = $_POST["idCantiere"];
/* below is incorrect */
/*global = $idCantierePerSelect;*/
$conn->close();
?>
</body>
</html>
Upvotes: 0