Am un combo box, in care item-urile sunt create in urma unei interogari in baza de date. La click pe un item, vreau sa trimit valoarea cu GET intr-o alta pagina php(query.php), unde se vor executa alte interogari, si apoi sa afiseze rezultatul in prima pagina(index.php).
Problema este ca nu se trimite nimic.
Pagina index.php:
Cod: Selectaţi tot
<!DOCTYPE html>
<html lang="en">
<body>
<form action="query.php" method="GET" id="form1">
<?php
include("db_connection.php");
// creem elementul select
$select1 = '<ul class="dropdown-menu">';
// query
$result1 = mysqli_query($con,"SELECT denumire FROM spitale");
// ciclam rezultatul
while($row1 = mysqli_fetch_array($result1)) {
$denumire = htmlspecialchars($row1['denumire']);
$select1 .= "<li><a href='".$denumire."' class='small' data-value='".$denumire."' tabIndex='-1' name='denumire'><input type='checkbox'/> ";
$select1 .= $denumire;
$select1 .= "</a></li>";
}
// inchidem tag-ul select
$select1 .= "</ul>";
?>
<?php echo $select1; ?>
<input type="hidden" name="search" value="true" />
<button type="submit" form="form1" value="Submit" id="submit_button">Query</button>
</form>
<h3>Rezultate:</h3>
<div class="records_content" id="update_div"></div>
<script src="js/jquery-2.3.js"></script>
<script>
$(document).ready(function () {
var submit_button = $('#submit_button');
submit_button.click(function() {
var denumire = $('a#denumire').attr('href');
var data = 'denumire=' + denumire;
//alert(denumire);
var update_div = $('#update_div');
$.ajax({
type: 'GET',
url: 'query.php',
data: data,
success:function(html){
update_div.html(html);
}
});
});
});
</script>
</body>
</html>
Pagina query.php :
Cod: Selectaţi tot
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// include Database connection file
include("db_connection.php");
if($_GET['search'] == true) {
$denumire = $_GET['denumire'];
echo $denumire."<br/>";
// Design initial table header
$data = '<table class="table table-bordered table-striped">
<tr>
<th>No.</th>
<th>Denumire</th>
<th>Adresa</th>
<th>Nr. Angajati</th>
<th>Coordonate</th>
</tr>';
$query = "SELECT denumire, strada, numar, nr_angajati, X(coordonate) AS `lat`, Y(coordonate) AS `lng` FROM spitale WHERE denumire='$denumire'";
if (!$result = mysqli_query($con,$query)) {
exit(mysql_error());
}
// if query results contains rows then featch those rows
if(mysql_num_rows($result) > 0)
{
$number = 1;
while($row = mysql_fetch_assoc($result))
{
$data .= '<tr>
<td>'.$number.'</td>
<td>'.$row['denumire'].'</td>
<td>'.$row['strada'].', Nr. '.$row['numar'].'</td>
<td>'.$row['nr_angajati'].'</td>
<td>'.$row['lat'].', '.$row['lng'].'</td>
</tr>';
$number++;
}
}
else
{
// records now found
$data .= '<tr><td colspan="6">Records not found!</td></tr>';
}
$data .= '</table>';
echo $data;
}
?>
Dupa ce se selecteaza un item din combo box, si se da click pe butonul Query, in bara de adresa din browser apare:
http://localhost/query.php?search=true
Deci nu se trimite si variabila 'denumire'.
Numai bine !