Come inserire opzioni menù prelevandole dal database con PHP ?

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
SONO DISPERATO! Sto usando questa guida https://www.mrw.it/ajax/menu-select-dinamici-ajax-php_7219.html Devo permettere che le "opzioni" non vengano prese dal file select.php, ma da una query sql dal database. In poche parole per adesso le opzioni vengono prelevate dal file select.php come potete vedere a questo link https://www.mrw.it/ajax/menu-select-dinamici-ajax-php_7219.html invece devo permettere che le opzioni, in questo caso i "linguaggi disponibili" vengano prelevati dal database e poi selezionati come abbiamo fatto con ajax fino a questo momento. Come devo modificare il file select.php inserendo le query sql che prelevano i dati ? E select.html? Come faccio a inserire le opzioni prendendole dalle query sql al database? Per favore aiutatemi !!! SONO DISPERATO !!!

Questo è il codice del mio form html chiamato select.html
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Form Example</title>
</head>
<body background="sfondo1.jpg">
<form action="name.php" method="get">
<div>
<label for="firstname"><b><font color="lime">Inserisci città:</font></b></label>
<input type="text" name="firstname" id="firstname">
</div>
<div>
<label for="categoria"><b><font color="lime">Categoria:</font></b></label>
<select id="categoria" name="categoria" onChange="GetLinguaggi(this.options[this.selectedIndex].text)">
<option value=""></option>
<option>programmazione</option>
<option>scripting</option>
</select>
</div>
<div>
<label for="categoria"><b><font color="lime">Linguaggio:</font></b></label>
<select name="linguaggio" id="linguaggio"></select>
</div>
<div style="margin-top: 20px;">
<input type="submit" value="GO">
</div>
</form>
<script src="ajax.js" type="text/javascript"></script>
<script type="text/javascript">
var url = "select.php";
var what = "SetLinguaggi(req.responseText)";

function GetLinguaggi(Categoria)
{
InviaDati("categoria="+Categoria);
}

function SetLinguaggi(Linguaggi)
{
var linguaggioBox = document.getElementById("linguaggio");
linguaggioBox.options.length = 0;
if(Linguaggi != "")
{
var arrLinguaggi = Linguaggi.split(",");
for(i = 0; i < arrLinguaggi.length; i++)
{
if(arrLinguaggi != "")
{
linguaggioBox.options[linguaggioBox.options.length] =
new Option(arrLinguaggi, arrLinguaggi);
}
}
}
}
</script>
</body>
</html>
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
E' vietato postare la stessa domanda in più sezioni, quella in ajax è stata cancellata.
Utilizza i tag code presenti sulla barra di formattazione per racchiudere il codice che posti.
Per risolvere il tuo problema devi modificare il file select.php inserendo una connessione al database e la query per l'estrazione dei record. Non serve modificare il file html che hai postato.
 

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
E' vietato postare la stessa domanda in più sezioni, quella in ajax è stata cancellata.
Utilizza i tag code presenti sulla barra di formattazione per racchiudere il codice che posti.
Per risolvere il tuo problema devi modificare il file select.php inserendo una connessione al database e la query per l'estrazione dei record. Non serve modificare il file html che hai postato.
Grazie per la risposta e scusami per le "incongruenze" ma sono disperato! Avevo intuito che dovevo fare quello che mi dici, ma come lo faccio? Nel senso che anche nel file select.html vi è una porzione di codice, dove le scelte le inserisco io "staticamente" ovvero
HTML:
<option value=""></option>
<option>programmazione</option>
<option>scripting</option>
Infatti così siamo noi a dire che ci sono queste 2 opzioni, mentre io devo prendere le possibili opzioni di linguaggio da una tabella del database, dopo questo attraverso ajax vado a selezionare il secondo menù "concatenato". Come posso fare ciò? Ti ringrazio di cuore sperando in una tua risposta!
 

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
Per favore qualcuno mi può rispondere? Anche un'idea, un aiuto, un consiglio, insomma qualcosa per piacere, sono disperato !!!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
PHP:
$sql = new mysqli("hostname", "username", "password", "database");
$query = "SELECT * FROM tabella ";
$result = $sql->query($query);
while ($row = $result->fetch_assoc()) {
    echo "<option value='" . $row['nome_campo'] . "'>" . $row['nome_campo'] . "</option>";
}
devi cambiare l'estensione della pagina in .php
 

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
ok grazie, quindi ricapitolando il mio file select.hmtl diventa php e aggiungo il codice che mi hai postato per poter "prendere" le opzioni dal database. Il file ajax rimane uguale? Chiedo conferma. Mentre il vecchio file select.php ovvero quello della guida https://www.mrw.it/ajax/menu-select-dinamici-ajax-php_7219.html che serve per selezionare le opzioni del secondo menù, quello concatenato al primo, come faccio anche in questo caso a prendere le opzioni dal database? Mi servirebbe soltanto quest'ultimo passaggio, ti ringrazio di cuore, attendo con ansia un tuo consiglio in merito!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
nel select php fai la stessa cosa solo che cambi la query per creare gli array
Codice:
$query = "SELECT * FROM tabella WHERE nome_campo = '" . $_REQUEST['categoria'] . "'";
 

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
nel select php fai la stessa cosa solo che cambi la query per creare gli array
Codice:
$query = "SELECT * FROM tabella WHERE nome_campo = '" . $_REQUEST['categoria'] . "'";
Ok, ma come interfaccio il tutto? Cioè il file ajax.js rimane uguale ma allora il vecchio file select.php adesso se inserisco solo la query che mi hai indicato come diventa?
Prima era così
PHP:
<?php
$linguaggi = array();
$linguaggi["programmazione"] = array(
  "Java",
  "Cobol",
  "Delphi",
  "C",
  "Python"
);
$linguaggi["scripting"] = array(
  "PHP",
  "ASP",
  "Jsp",
  "Ruby",
  "Javascript"
);
if(isset($_POST["categoria"]) && isset($linguaggi[$_POST["categoria"]]))
{
  foreach($linguaggi[$_POST["categoria"]] as $linguaggio)
  {
    printf("%s,", $linguaggio);
  }
}
?>
Adesso devo inserire quello che mi hai indicato, ma il mio dubbio è come comunica con gli altri 2 file? Infatti ci si aspetta 2 array:
$linguaggi["scripting"] = array( "PHP", "ASP", "Jsp", "Ruby", "Javascript");
$linguaggi["programmazione"] = array( "Java", "Cobol", "Delphi", "C", "Python");
Come devo strutturare il file?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dovrebbe essere cosi
PHP:
if (isset($_POST["categoria"])) {
    $sql = new mysqli("hostname", "username", "password", "database");
    $query = "SELECT * FROM tabella WHERE categoria = '" . $_POST['categoria'] . "'";
    $result = $sql->query($query);
    while ($row = $result->fetch_assoc()) {
        printf("%s,", $row['categoria']);
    }
}
 

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
dovrebbe essere cosi
PHP:
if (isset($_POST["categoria"])) {
    $sql = new mysqli("hostname", "username", "password", "database");
    $query = "SELECT * FROM tabella WHERE categoria = '" . $_POST['categoria'] . "'";
    $result = $sql->query($query);
    while ($row = $result->fetch_assoc()) {
        printf("%s,", $row['categoria']);
    }
}
Quindi il "vecchio" file select.php conterrà solo l'ultimo codice che mi hai postato, perchè i 2 array adesso non servono più? Grazie ancora!
 

Disperato1

Nuovo Utente
7 Mag 2017
14
0
1
30
si, l'array si crea con la query
L'ho provato ma mi funziona solo il primo menù !!! Il secondo mi scrive questo errore: FATAL ERROR: CALL TO A MEMBER FUNCTION FETCH_ASSOC ON NULL ed è riferito al file select.php da te modificato
Codice:
if (isset($_POST["categoria"])) {
    $sql = new mysqli("hostname", "username", "password", "database");
    $query = "SELECT * FROM tabella WHERE categoria = '" . $_POST['categoria'] . "'";
    $result = $sql->query($query);
    while ($row = $result->fetch_assoc()) {
        printf("%s,", $row['categoria']);
    }
}
AIUTAMI PER FAVORE !!!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
spero che hai messo il nome della tua tabella e i parametri di connessione al tuo database
dopo
PHP:
$result = $sql->query($query);
aggiungi
PHP:
<?php
if(!$result) {
echo "error : " . $sql->error;
}
ti stamperà l'errore
 
Discussioni simili
Autore Titolo Forum Risposte Data
I inserire pryvacy opzioni accetto non accetto Joomla 0
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
D [Javascript] inserire uno script in un file php Javascript 6
napuleone [HTML] type="file" inserire path di partenza HTML e CSS 4
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Shyson [PHP] Inserire testo nel codice PHP 2
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
Shyson [HTML] Inserire nuovo font con @font-face HTML e CSS 5
Alex_70 Inserire photo in php PHP 0
D [Javascript] [HTML] Inserire slash dopo 3 numeri Javascript 5
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [HTML] Come inserire google review stars nelle pagine del mio sito HTML e CSS 0
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
spider81man [PHP] Inserire file .pdf in db PHP 6
P [WordPress] Inserire codice in pagina dinamica WordPress 0
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
M [PHP] Inserire array nel db PHP 6
andreas88 [HTML] come inserire 3 riquadri in un unico rigo (vedere img allegata) HTML e CSS 11
G [PHP] inserire risultato di una query in una tabella PHP 3
P [Javascript] Inserire una nuova condizione in una funzione Javascript 3
G [Guida MyBB 1.8] Inserire icone accanto alle sezioni CMS (Content Management System) 0
M [wordpress-galleria immagini]Inserire classe php in html PHP 0

Discussioni simili