Selettore che compila in automatico un INPUT

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Salve ragazzi, ho sempre usato uno script per compilare, con una selezione dei campi input in automatico ve lo mostro:

PHP:
function compilatutto(value) {
  if (value == 'carne') {
  document.getElementById('prezzo1').value="15.00";
  document.getElementById('img_prod1').src="http://forum.mrwebmaster.it/images/prodotti/mini/00.png";
  document.getElementById('link1').href="http://forum.mrwebmaster.it/images/prodotti/00.png";
 }

però il problema sorge ogni volta che si aggiunge un nuovo prodotto/immagine/prezzo va compilato aggiungendo la funzione:

PHP:
function compilatutto02(value) {
  if (value == 'pesce') {
  document.getElementById('prezzo2').value="25.00";
  document.getElementById('img_prod2').src="http://forum.mrwebmaster.it/images/prodotti/mini/02.png";
  document.getElementById('link2').href="http://forum.mrwebmaster.it/images/prodotti/02.png";
 }

dato che nel database prodotti ho aggiunto il campo 'prezzo' 'img_prod'
conoscete una funzione che funzioni in automatico a seconda del prodotto che selezione, peschi dalla riga il relativo prezzo ed immagine?
Grazie in anticipo ;)
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Stavo provando con qualche idea una cosa del genere avrebbe senso?

PHP:
function compilatutto12(value) {
 if (value == '2 <?php = $id ?>') {
  document.getElementById('prezzo1').value="
  		<?php
		$sql="SELECT * FROM prodotti WHERE	id = $id;";
		$prodotti=MYSQL_QUERY($sql) or die (mysql_error()); 
		while($riga = mysql_fetch_array($prodotti)){ 
    	$prezzo1=$riga['prezzo']; 
    	echo "$prezzo1"; 
		?>
}

Ovviamente non funziona qualche idea???
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
non ho capito molto..
la funzione viene richiamata da un pulsante?
cioè hai i campi vuoti e al click li riempi? o li devi riempire al caricamento della pagina?
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Praticamente o un elenco di nomi che recupero dal database, quando ne seleziono uno popola degli input riconosciuti con l'id, dato che ogni volta che si aggiunge un prodotto poi bisogna ricreare una lo script java, mi chiedevo se esisteva un modo di pescare automaticamente il valore che si trova nel database corrispondente al prodotto, esempio
Database:
nome - value - prezzo - img_prod
carne - 1 - 12,00 - images/02.png



vorrei che da un select scegliendo "carne"
si popoli in automatico un input con id = prezzo1 (con il valore 12,00)
ed un altro input con id = images1 (con il valore imges/02.png)

Lo script che uso fa proprio questo ma bisogna prevedere tutto cosi

HTML:
function compilatutto01(value) {
 if (value == 'carne') {
  document.getElementById('prezzo1').value="12,00";
  document.getElementById('img_prod1').src="http://forum.mrwebmaster.it/images/prodotti/mini/02.png";
  document.getElementById('link1').href="http://forum.mrwebmaster.it/images/prodotti/02.jpg";
 }
 if (value == 'pesce') {
  document.getElementById('prezzo1').value="15,00";
  document.getElementById('img_prod1').src="http://forum.mrwebmaster.it/images/prodotti/mini/03.jpg";
  document.getElementById('link1').href="http://forum.mrwebmaster.it/images/prodotti/03.jpg";
 }

Quindi ogni volta che aggiungo un prodotto devo modificare la funzione, poi diventa complicato perchè se devo variare ad esempio prezzi o foto, devo sempre mettere mano sul codice.
Se non mi sono spiegato chiedi ancora ;)
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
una cosa del genere?

PHP:
            		<script>
<!-------------------Script che popola i  prezzo unitario Prodotto 1----------------------->
function compilatutto01(value) {
 if (value == 
 '
  <?php
  	$sql="SELECT * FROM prodotti;";
	$prodotti=MYSQL_QUERY($sql) or die (mysql_error()); 
	while($riga = mysql_fetch_array($prodotti)){ 
    $value=$riga['value']; 
    echo "$value"; }?>
 ') 
 {
  document.getElementById('prezzo1').value="
  <?php
  	$sql="SELECT * FROM prodotti WHERE value = $value;";
	$prodotti=MYSQL_QUERY($sql) or die (mysql_error()); 
	$prezzo=$riga['prezzo'];
    echo "$prezzo"; 
  ?>";
 }
 </script>

   <tr>
                <th scope="row" bgcolor="#E2F4FC"><a id="link1" href="" target="_blank"><img id="img_prod1"/><input type="text" name="prezzo1" id="prezzo1"/></a></th>
            <td bgcolor="#E2F4FC">
            <center> 
<select name="prodotto1" id="prodotto1" onmousemove="compilatutto01(value);mostra01( document.form_registrazione.prodotto1.options[document.form_registrazione.prodotto1.selectedIndex ].value );" 
            onclick="compilatutto01(value);mostra01( document.form_registrazione.prodotto1.options[document.form_registrazione.prodotto1.selectedIndex ].value );">
            <?php prodotti(); ?>
           </select>
            </center>
            </td>
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Allora sto proseguendo con questa cosa e forse inizio a vedere un barlume, ho utilizzato questo Tutorial che serve per i menu correlati, allora mi sono chiesto se si potesse sfruttare il principio dei menu, invece di pescare da 3 tabelle pesca sempre dalla stessa, compilando i campi con prezzo ed immagine relativa ad un prodotto. Posto le modifiche

index.php:

PHP:
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
// Select Province e Comuni dalla Regione. 
function selProvCom(idRegion) {
  // Seleziono province di questa regione. 
  $.get("select_abitativa.php", { regionid: idRegion, requestItems: 'province'}, 
  function(dataProvince){
    $("select[id='province']").empty();
    var options = '';
    var arrayProvince = dataProvince.split( '||');
    for (var i = 1; i < arrayProvince.length; i++) {
      var provincia = arrayProvince[i].split( /,/);
      options += '<option value="' + provincia[0] + '">' + provincia[1] + '</option>';
    }
    $("select[id='province']").html(options);
  });
  // Seleziono comuni di questa regione. 
  $.get("select_abitativa.php", { regionid: idRegion, requestItems: 'comuni'}, 
  function(dataComuni){
    $("select[id='city']").empty();
    var options = '';
    var arrayComuni = dataComuni.split( '||');
    for (var i = 1; i < arrayComuni.length; i++) {
      var comune = arrayComuni[i].split( /,/);
      options += '<option value="' + comune[0] + '">' + comune[1] + '</option>';
    }
    $("select[id='city']").html(options);
  });
}
</script>
</head>
<body>
<p>
<label for="region">Regione:</label><br />
<select id="region" name="region" onChange="selProvCom(this.value);">
<?php
// Collegamento ad database. 
include("dbconfig.php");

// Query selezione tutte le regioni. 
$sql = "select * from prodotti order by prodotti"; 

// Eseguo la query. 
$result = mysql_query($sql, $conn); 
while($region = mysql_fetch_array($result)) {
?>
<option value="<?php echo $region['id']; ?>"><?php echo $region['prodotti']; ?></option>
<?php
}
?>
</select>
</p>
<p>
<label for="province">Provincia:</label><br />
<select id="province" name="province">
</select>
</p>
<p>
<label for="city">Città:</label><br />
<select id="city" name="city">
</select>
</p>
</body>

file select_abitativa.php

PHP:
<?php
// Seleziona Province e Comuni. 
include("dbconfig.php");

if (isset($_GET['regionid']) and is_numeric($_GET['regionid'])) {
  if (isset($_GET['requestItems']) and $_GET['requestItems']==='province') {
    $regionID = intval($_GET['regionid']);
    $query = <<<EOQ
SELECT * 
FROM prodotti 
WHERE id = '$regionID' 
ORDER BY prodotti
EOQ;
    $result = mysql_query($query, $conn);
    $returnProvince = '';
    while ($row = mysql_fetch_array($result)) {
      $returnProvince .= "||".$row['id'].",".$row['prezzo'];
    }
    print_r($returnProvince);
  } 
  else if (isset($_GET['requestItems']) and $_GET['requestItems']==='comuni') {
    $regionID = intval($_GET['regionid']);
    $query = <<<EOQ
SELECT * 
FROM prodotti 
WHERE id = '$regionID' 
ORDER BY prodotti
EOQ;
    $result = mysql_query($query, $conn);
    $returnComuni = '';
    while ($row = mysql_fetch_array($result)) {
      $returnComuni .= "||".$row['id'].",".$row['img_prodotti'];
    }
    print_r($returnComuni);
  }
} 
?>

occorre anche il file jquery.js
cmq così facendo funziona, finalmente si popola sia il select provincia (con il prezzo) ed il select città (con immagine).
Ora sto tentando di cambiare la popolazione dei campi, vorrei mettere dei campi input invece che select, qualcuno mi può dare una mano? Credo che possa essere molto utile a chiunque, vi fornisco anche il database se volete fare delle prove:

Database

/*DROP TABLE IF EXISTS `prodotti`*/;
CREATE TABLE `prodotti` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`prodotti` varchar(255) DEFAULT NULL,
`value` varchar(255) DEFAULT NULL,
`prezzo` varchar(255) DEFAULT NULL,
`tipo` varchar(255) DEFAULT NULL,
`img_prodotti` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=latin1;

#
# Data for table "prodotti"
#

INSERT INTO `prodotti` VALUES (1,':: seleziona ::',NULL,NULL,NULL,NULL),(2,'Ovolini','Ovolini','0.35','0','images/00.png'),(3,'Mignon Rustici,Pizzette,Tramezzini','Mignon Rustici,Pizzette,Tramezzini','18.00','1','images/00.png'),(4,'Cornetti Salati Mignon','Cornetti Salati Mignon','0.90','0','images/00.png'),(5,'Sandwich Mignon','Sandwich Mignon','1.00','0','images/00.png'),(6,'Pan Brioche Classico','Pan Brioche Classico','25.00','0','images/00.png'),(7,'Pan Brioche di Pesce','Pan Brioche di Pesce','30.00','0','images/00.png'),(8,'Pizza Rossa/Bianca','Pizza Rossa/Bianca','13.00','1','images/00.png'),(9,'Mandorle Salate','Mandorle Salate','25.00','0','images/00.png'),(10,'Tartine','Tartine','20.00','1','images/00.png'),(11,'Suppli,Olive Ascolane,Arancini','Suppli,Olive Ascolane,Arancini','13.00','1','images/00.png'),(12,'Pasticceria da Thè','Pasticceria da Thè','18.00','1','images/00.png'),(13,'Torte Rustiche','Torte Rustiche','15.00','1','images/00.png'),(14,'Rusticoni','Rusticoni','18.00','1','images/00.png'),(15,'Panzerotti','Panzerotti','1.00','0','images/00.png'),(16,'Crostate','Crostate','13.00','1','images/00.png'),(17,'Cioccolatini','Cioccolatini','35.00','1','images/00.png'),(18,'Cornettone','Cornettone','14.00','1','images/00.png'),(19,'Insalate Varie','Insalate Varie','15.00','1','images/00.png'),(20,'Torte','Torte','18.00','1','images/00.png'),(21,'Torte Artistiche','Torte Artistiche','23.00','1','images/00.png'),(22,'Meringhe','Meringhe','25.00','1','images/00.png'),(23,'Marzapane','Marzapane','25.00','1','images/00.png'),(24,'Voulevant','Voulevant','18.00','1','images/00.png'),(25,'Arancini','Arancini','14.00','1','images/00.png'),(26,'Pizzette','Pizzette','18.00','1','images/00.png'),(27,'Rustici','Rustici','18.00','1','images/00.png'),(28,'Panini Affettati','Panini Affettati','0.80','0','images/00.png'),(29,'Pasta Sfoglia','Pasta Sfoglia','12.00','1','images/00.png'),(30,'Pasta Frolla','Pasta Frolla','12.00','1','images/00.png'),(31,'Pan Di Spagna','Pan Di Spagna','12.00','1','images/00.png'),(32,'Pandori','Pandori','12.00','0','images/00.png'),(33,'Panettoni','Panettoni','12.00','0','images/00.png'),(34,'Dolci Natalizi','Dolci Natalizi','25.00','1','images/00.png'),(35,'Torrone','Torrone','25.00','1','images/00.png'),(36,'Mignon Dolci','Mignon Dolci','18.00','1','images/00.png'),(37,'Paste Grandi','Paste Grandi','1.60','0','images/00.png'),(38,'Cornetti','Cornetti','1.00','0','images/00.png'),(39,'Cornetti Mignon','Cornetti Mignon','0.35','0','images/00.png'),(40,'Torta della Nonna','Torta della Nonna','14.00','1','images/00.png'),(41,'Panna','Panna','12.00','1','images/00.png');

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ti ho commentato nel post quel "DROP TABLE IF EXISTS `prodotti`;" non si sa mai che qualcuno non si cancelli la tabella
detto questo ancora non credo di aver capito bene ma forse te la puoi cavare con qualcosa di piu semplice
prova questo esempio
PHP:
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script>
            function compila(dati) {    
                var dati = dati.split(";");                
                document.getElementById("prodotto").innerHTML = dati[0];
                document.getElementById("prezzo").innerHTML = dati[1];
                document.getElementById("immagine").innerHTML = dati[2];
            }
        </script>
    </head>
    <body>
        <p>Prodotto : <span id="prodotto"></span></p>
        <p>Immagine : <span id="immagine"></span></p>
        <p>Prezzo : <span id="prezzo"></span></p>

        <select name="prodotti" onchange="compila(this.options[this.selectedIndex].value)">
            <option value=""></option>
            <?php
            include_once 'test/connessione.php';
            $sql = "SELECT * FROM prodotti";
            $prodotti = mysql_query($sql) or die(mysql_error());
            while ($riga = mysql_fetch_array($prodotti)) {
                $dati = $riga['prodotti'] . ";" . $riga['prezzo'] . ";" . $riga['img_prodotti'];
                echo "<option value='$dati'>" . $riga['prodotti'] . "</option>";
            }
            ?>
        </select>
    </body>
</html>
ti basta modificare con il tuo file di connessione
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
E' proprio quello che mi serve, solo una cosa così facendo non genero dei valori che possono andare nul value di un campo input, mi spiego te hai usato per vedere il risultato
<span id="prodotto"></span></p>
ma se lo cambio e ci metto
<input id="prodotto" value=""/>
non generando una valuta non mi popola l'input, come potrei ovviare??? Grazie ancora ;)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
preimposta il value : esempio
HTML:
<input type="text" name="prezzo" id="prezzo" value="0.00"/>
se presente nel database verrà svrascritto altrimenti rimane quello preimpostato (in teoria, altrimenti piccola modifica allo script)
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Non cambia inserendo un valore, quindi credo che sia qui nello script che bisogna fare la variazione ho provato alcune modifiche ma infruttuose :S hai qualche idea
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
bisognerebbe sapere cosa contiene la variabile se null oppure niente cmq puoi provare cosi
riprendo il mio esempio
Codice:
   if(dati[1] != "") {
                    document.getElementById("prezzo").innerHTML = dati[1];
                }else{
                    document.getElementById("prezzo").innerHTML = "0.00";
                }
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Form con selettore HTML e CSS 0
F Selettore di immagine Javascript 4
P Filtro selettore e variabile jQuery 2
F selettore this jQuery 3
N selettore immagini Javascript 1
L Form Ordine (Selettore Quantità) Javascript 11
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
C Hosting che supportano websocker ed event scheduler Domini 0
K Form che manda dati doppi PHP 1
D rotella di caricamento che si toglie quando parte il download Ajax 0
M Vendo il mio sito web teknosurfng.com, che trasmette nel campo della tecnologia Compravendita siti e domini 0
Shyson Regex che trova la parola nella pagina jQuery 6
alankanz Count che ricomincia ogni anno PHP 2
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
Ricky80 Fiore che sboccia Javascript 0
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
G notifiche dekstop/mobile ogni volta che record è inserito/eliminato/aggiornato PHP 0
P Pagina modifica record che non funziona PHP 0
S In che linguaggio è scritto il DTD? XML 2
Shyson Wordpress conta più messaggi di quelli che ci sono WordPress 1
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
G Finestra di dialogo che non si apre - programma NUENDO Windows e Software 0
voldemort Cos'è una SCRL? Che tipo di società è?? Leggi, Normative e Fisco 1
Shyson Codice che trova item casuali PHP 1
S Testo scrolla su immagine che cambia HTML e CSS 0
R Immagini scontornate: che formato? HTML e CSS 4
R Select concatenata che non funziona la seconda volta Ajax 3
G un tool che trova nuovi clienti per web agency e web developer Offerte e Richieste di Lavoro e/o Collaborazione 2
I Credo che si inizi con ciao... Presentati al Forum 1
Alex_70 Stringa che diventa un url PHP 6
A nome file che contiene punto passato come parametro a query PHP 31
D File pdf che non si aprono .... PHP 1
S Hosting che permetta collegamenti esterni Hosting 0
V Condominio dispettoso, volume citofono che si abbassa e si alza in maniera strana Presentati al Forum 1
C ID che si incrementa ad ogni evento Database 0
P Sito creano con Joomla con sottominio che reindirizza a sito esterno Domini 1
T Far sparire dalla pagina div che saranno inseriti successivamente jQuery 0
T [a pagamento] programmatore PHP che mi aiuti a migrare gli script da vecchia versione PHP a nuova Offerte e Richieste di Lavoro e/o Collaborazione 1
E Div che scompare con scroll jquery Javascript 0
T Dubbio su costante ROOT, che rappresenti la base directory del sito PHP 4
G Evitare che mi continui ad arrivare in alice mail spam Posta Elettronica 2
A Non è un array e nemmeno un intero, che tipo di dato è? Javascript 1
D Logout che rientra col tasto indietro del browser PHP 5
R Impianto che non si vede sul cell IP Cam e Videosorveglianza 6
E Webmaster freelancer che si vuole tutelare legalmente Leggi, Normative e Fisco 0
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
SilverSpirit Hosting che non costa molto Hosting 4
D [PHP] Query che aggiorna tabella PHP 4

Discussioni simili