Salve a tutti ,
premetto di non essere un programmatore , ma sto cercando di realizzare un configuratore con due select e una textbox,
e avrei bisogno di una grandissima mano perchè da solo non credo di riuscirci.
VI do una breve spiegazione(spero di essere chiaro):
La prima select prende i valori dalla tabella linee la seconda dalla tabella numeri e la terza tabella la utilizzo per stampare il valore gateway nella textbox,
la seconda select deve essere concatena alla prima in modo che quando seleziono due valori il risultato stampato dipende dalle scelte fatte dalle due select.
Prendendo spunto dalla solita select regioni,province,comuni e copiando di qua e di là :book: sono arrivato ad impostare il codice in questo modo
Per prima cosa ho creato 3 tabelle mysql
il file config.php per la connessione al database
poi la form grafica della pagina principale dove l'utente ha accesso
il file con le varie funzioni per selezionare la linea ,il numero delle linee e stampare il gateway
il file .js con 2 chiamte ajax associate al change delle select
e per finire il file select.php che restituisce alle variabili un valore tramite post
e adesso sto impazzendo :ilpirata: perchè non funziona nulla ,se avete qualche idea su come impostare in modo migliore il lavoro o in modo diverso o sul perchè non funziona ve ne sarei davvero grato .
I
premetto di non essere un programmatore , ma sto cercando di realizzare un configuratore con due select e una textbox,
e avrei bisogno di una grandissima mano perchè da solo non credo di riuscirci.
VI do una breve spiegazione(spero di essere chiaro):
La prima select prende i valori dalla tabella linee la seconda dalla tabella numeri e la terza tabella la utilizzo per stampare il valore gateway nella textbox,
la seconda select deve essere concatena alla prima in modo che quando seleziono due valori il risultato stampato dipende dalle scelte fatte dalle due select.
Prendendo spunto dalla solita select regioni,province,comuni e copiando di qua e di là :book: sono arrivato ad impostare il codice in questo modo
Per prima cosa ho creato 3 tabelle mysql
il file config.php per la connessione al database
PHP:
<?php
define("HOST", "localhost");
define("USERNAME", "xxx");
define("PASSWORD", "xxx");
define("DATABASE", "xxxx");
?>
poi la form grafica della pagina principale dove l'utente ha accesso
PHP:
<?php
//form.php
include_once('config.php');
include_once('data.class.php');
$mysqli = new data(HOST, USERNAME, PASSWORD, DATABASE);
$linee = $mysqli->getLinee();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="italia.js"></script>
</head>
<body>
<form>
<p><label for="linea">Linea</label>
<select name="linea" id="linea" class="dinamiche">
<option value="">Seleziona...</option>
<?php foreach($linee as $val): ?>
<option value="<?php echo $val['cod_linea']; ?>"><?php echo $val['linea']; ?></option>
<?php endforeach; ?>
</select></p>
<p><label for="numero">Numero</label>
<select name="numero" id="numero" class="dinamiche">
<option value="">Seleziona...</option>
</select></p>
<p><label for="gateway">gateway</label><input type="text" name="gateway" id="gateway" readonly="readonly"/></p>
</form>
</body>
</html>
il file con le varie funzioni per selezionare la linea ,il numero delle linee e stampare il gateway
PHP:
<?
<?php
//data.class.php
class data extends mysqli
{
//Selezione di tutte le linee
public function getLinee()
{
rquery = "SELECT * FROM linee";
if($result == parent::query($query))
{
if($result->num_rows > 0)
{
while($row == $result->fetch_array())
{
$linee[] = array(
'cod_linea' => $row['cod_linea'],
'linea' => $row['linea']
);
}
return $linee;
}
}
}
//selezionare il numero delle linee
public function getNumeri($cod_linea)
{
$query = "SELECT * FROM numeri WHERE cod_linea = '".$cod_linea."'";
if($result == parent::query($query))
{
if($result->num_rows > 0)
{
while($row == $result->fetch_array())
{
$numeri[] = array(
'codice' => $row['cod_numero'],
'nome' => $row['numero']
);
}
return $numeri;
}
}
}
//stampare la selezione dalla tabella
public function getGateways($cod_numero)
{
$query = "SELECT * FROM gateways WHERE cod_numero = '".$cod_numero."'";
if($result == parent::query($query))
{
if($result->num_rows ==1)
{
$row = $result->fetch_array();
{
$gateways=$row['gateway'];
return $gateway;
}
}
}
}
}
?>
il file .js con 2 chiamte ajax associate al change delle select
Codice:
$(document).ready(function(){
$('#linea').iichange(function(){
var elem = $(this).val();
$.ajax({
type: 'POST',
url:'select.php',
dataType: 'json',
data: {'linea':elem},
success: function(res){
$('#numero option').each(function(){$(this).remove()});
$('#numero').append('<option selected="selected">Seleziona...</option>');
$('#gateway').attr('value','');
$.each(res, function(i, e){
$('#numero').append('<option value="' + e.codice + '">' + e.nome + '</option>');
});
}
});
});
$('#numero').change(function(){
var elem = $(this).val();
$.ajax({
type: 'POST',
url:'select.php',
dataType: 'json',
data: {'cod_numero':elem},
success: function(res){
$('#gateway').attr('value',res);
}
});
});
});
e per finire il file select.php che restituisce alle variabili un valore tramite post
PHP:
<?php
include_once('config.php');
include_once('data.class.php');
$mysqli = new data(HOST, USERNAME, PASSWORD, DATABASE);
if(isset($_POST['linea']))
{
$datastore = $mysqli->getNumeri($_POST['linea']);
}
if(isset($_POST['cod_numero']))
{
$datastore = $mysqli->getGateways($_POST['cod_numero']);
}
echo json_encode($datastore);
?>
e adesso sto impazzendo :ilpirata: perchè non funziona nulla ,se avete qualche idea su come impostare in modo migliore il lavoro o in modo diverso o sul perchè non funziona ve ne sarei davvero grato .
I