[PHP] Campi "Value" "select"

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Ciao a tutti. Vi stresso con una nuova domanda.
Ho un form dove in un campo "value" scelgo il nome di un cliente tra i mille.
Poi in un altro campo devo scrivere a mano il suo codice cliente.
Per velocizzare un po la compilazione, ho messo un altro select che come value ha il codice cliente.
Mi spiego meglio, nel campo 1 scelgo "pippo" e viene inserito "pippo" <option value="pippo">pippo</option>, Nel campo 2 scelgo ancora "pippo" ma ho messo "il codice cliente" <option value="123456">pippo</option> .
Ma sarebbe possibile automatizzare il secondo campo dicendogli : se nel primo c'è pippo allora nel secondo metti 12345 ???
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
Con l'ausilio di un database (quindi di tabelle), il tutto si automatizza notevolmente.
Hai considerato l'idea?
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Ciao AdeKnite, grazie per la risposta.
Questa pagina, serve per inserire nel mio database la registrazione degli incassi.
Pian piano, aggiungo "migliorie" per velocizzare il lavoro....
L'ultima è questa, appunto quella di velocizzare l'inserimento di nome i codici. Ho richiamato con due "include", due file in txt per far prima.... con nominativi, il primo e codici il secondo.... cosi se dovessi aggiungere un cliente, aggiungerei una rica al txt
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
<td align='center'width=''>Ragione sociale<?php include('clienti.txt'); ?></td><br>
<td align='center'width=''>Codice cliente<?php include('codclienti.txt'); ?></td><br>
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
A pensarci bene... io ho gia una tabella con nomi e codici clienti...
Ma come faccio a richiamarli nel mio form?
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
PHP:
// rischioso a meno che il campo nome_cliente non sia unico
$query = " SELECT codice_cliente from tabella WHERE nome_cliente = 'pippo' ";


//meglio recuperare il nome dal codice
$query = " SELECT nome_cliente from tabella WHERE codice_cliente = 12345 ";

Una volta estratto il valore risultante dalla query lo salvi all'interno di una variabile e successivamente lo stampi a video.
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Ecco... ti dispiacerebbe mostrarmi lo script?
Riguardo al nome cliente, si è univoco.
Anche perché il nome lo ricordo facilmente, ma il codice no! Per cui preferisco cercare il nome e far comparire anche il codice...
Non capisco, la pagina si aggiorna appena inserisco il campo del nome?
 
Ultima modifica:

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
PHP:
<?php

// ADATTARE LE CREDEDENZIALI DI ACCESSO
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "NOME_DATABASE"; // IMPORTANTE

$str  = 'mysql:host='.$servername.';dbname='.$dbname.';charset=utf8mb4';
$opt = array(
    PDO::ATTR_EMULATE_PREPARES         => FALSE,
    PDO::ATTR_ERRMODE                => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE     => PDO::FETCH_ASSOC
    );

try {
    $conn = new PDO($str,$username,$password,$opt);
} catch(PDOException $ex) {
    echo "ERRORE!";
}
?>
<html>
<head>
    <title></title>
</head>
<body>
    <form>
        <select>
            <option selected disabled>Seleziona un cliente...</option>
            <?php 

            $select = "SELECT cod_cliente,nome_cliente FROM prova";
            $stm = $conn->prepare($select);
            $stm->execute();

            while ($riga = $stm->fetch(PDO::FETCH_ASSOC)) {
                echo "<option value='".$riga['cod_cliente']."'>".ucfirst($riga['nome_cliente'])."</option>\n";
            }

             ?>
        </select>
<input type="submit">
    </form>


</body>
</html>


Questo è ciò che viene stampato a video (avendo i campi della tabella valorizzati come i miei)

HTML:
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form>
            <select>
                <option selected disabled>Seleziona un cliente...</option>  
                <option value='12'>Tizio</option>
                <option value='33'>Caio</option>
                <option value='49'>Sempronio</option>
                <option value='65'>Ermenegildo</option>
            </select>
            <input type="submit">
        </form>
    </body>
</html>
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Grazie mille. Adesso sono in giro dai clienti a riscuotere... ;-) appena arrivò a casa... provo subito! Poi ti faccio sapere.
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
eccomi. Sto provando. Ma in questo modo, appare un menu a tendina dove posso scegliere il cliente che voglio... ok, ma non compila un secondo campo con il codice cliente.... ma sostituisce al nome del cliente, il suo codice... ma nello stesso campo!
Comunque anche cosi, ho fatto un passo avanti, non creo un nuovo file di testo ma uso il db che gia avevo...
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
La funzione esatta di tutto ciò qual è? Vedere qual è il codice assegnato a ciascun utente?
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Scusa... allora, per lavoro, incasso pagamenti per fatture.
Devo registrare "chi" paga "cosa".
tipo doc = fattura
numero doc = 1234
Cliente = pippo
numero cliente = 1111
data documento = 160803
ecc...
all'inizio scrivevo tutto a mano... poi pian piano mi sono evoluto... sono tutti dati che riporto dalle fatture, però mi piacerebbe trovare il nome pippo nell'elenco del campo cliente e che in automatico nel campo numero cliente mi ci venisse 1111
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
40
Ciao trapano, se non ho capito male ciò che a te serve e: inserire in un campo di ricerca il numero fattura e da quel numero fattura ti esce la scheda cliente ad esempio
Pippo
Codice cliente
Stato pagamenti
Stato fattura ecc...
Se sbaglio correggimi.
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
Potresti fare una chiamata Ajax. Dovrai munirti principalmente di un paio di pagine.


form.php
PHP:
<?php
    // ADATTARE LE CREDEDENZIALI DI ACCESSO
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = ""; // IMPORTANTE
   
    $str  = 'mysql:host='.$servername.';dbname='.$dbname.';charset=utf8mb4';
    $opt = array(
        PDO::ATTR_EMULATE_PREPARES         => FALSE,
        PDO::ATTR_ERRMODE                => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE     => PDO::FETCH_ASSOC
        );
   
    try {
        $conn = new PDO($str,$username,$password,$opt);
    } catch(PDOException $ex) {
        echo "ERRORE!";
    }
    ?>
<html>
    <head>
        <title></title>
        <style type="text/css">
            label,input,select {margin: 5px;}
        </style>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    </head>
    <body>
        <form action="" method="post">
            <label for="codice_cliente"><strong>Codice Cliente</strong></label><input readonly id="codice_customer" value=""><br>
            <label for="cliente"><strong>Nome Cliente</strong></label>
            <select name="cliente" id="cliente">
                <option selected disabled>Seleziona un cliente...</option>
                <?php 
                    $select = "SELECT nome_cliente FROM prova";
                    $stm = $conn->prepare($select);
                    $stm->execute();
                   
                    while ($riga = $stm->fetch(PDO::FETCH_ASSOC)) {
                   
                        echo "<option value='".$riga['nome_cliente']."'>".$riga['nome_cliente']."</option>\n";
                    }
                   
                     ?>
            </select>
            <br>
            <input type="submit">
        </form>
        <script type="text/javascript">
            $("#cliente").change(function() {
           
            $.ajax({
                type: "POST",
                url: "chiamata.php",
                data: $('select#cliente').serialize()
            }).done(function(data) {
                $("#codice_customer").val(data);
            });
           
            })
           
        </script>
    </body>
</html>



chiamata.php
PHP:
<?php
   // ADATTARE LE CREDEDENZIALI DI ACCESSO
   $servername = "localhost";
   $username = "root";
   $password = "";
   $dbname = ""; // IMPORTANTE
   
   $str  = 'mysql:host='.$servername.';dbname='.$dbname.';charset=utf8mb4';
   $opt = array(
       PDO::ATTR_EMULATE_PREPARES         => FALSE,
       PDO::ATTR_ERRMODE                => PDO::ERRMODE_EXCEPTION,
       PDO::ATTR_DEFAULT_FETCH_MODE     => PDO::FETCH_ASSOC
       );
   
   try {
       $conn = new PDO($str,$username,$password,$opt);
   } catch(PDOException $ex) {
       echo "ERRORE!";
   }
   
   if(isset($_POST['cliente'])) {
      $cliente=$_POST['cliente'];
   } else {
      $cliente = 0;
   }
   
   $ricerca_users = "SELECT cod_cliente FROM prova where nome_cliente = ? ";
      $stm = $conn->prepare($ricerca_users);
      $stm->execute(array($cliente));
      $riga = $stm->fetch(PDO::FETCH_ASSOC);
     
      echo $riga['cod_cliente'];
   ?>


Nella pagina form.php, attraverso JQuery, viene prelevato il nome del cliente e passato tramite una chiamata Ajax, a chiamata.php.

Qui, viene eseguita una query che recupera il codice del cliente in cui il nome è uguale a quello della variabile passata precedentemente (è importante, quindi, che non vi siano nomi clienti uguali all'interno della tabella a cui vengono assegnati codici diversi).

A questo punto il codice del cliente torna indietro a form.php, popolando automaticamente un campo input.


Ti consiglio di creare una nuova pagina (e.g. config.php) in cui inserisci il codice necessario per la connessione al db, in modo da non doverlo riscrivere ogni volta. Ti basterà poi solamente includerlo nel file che stai utilizzando. (attraverso require_once() ad esempio). Il codice di cui parlo è il seguente:


config.php
PHP:
<?php
 // ADATTARE LE CREDEDENZIALI DI ACCESSO
 $servername = "localhost";
 $username = "root";
 $password = "";
 $dbname = ""; // IMPORTANTE
 
 $str = 'mysql:host='.$servername.';dbname='.$dbname.';charset=utf8mb4';
 $opt = array(
 PDO::ATTR_EMULATE_PREPARES => FALSE,
 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
 );
 
 try {
 $conn = new PDO($str,$username,$password,$opt);
 } catch(PDOException $ex) {
 echo "ERRORE!";
 }
?>
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Grazie mille. Oggi, appena rientro a pranzo, provo subito.
Poi ti aggiorno sul risultato.
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Eccomi di nuovo.
Perfertissimo!!!!
Funziona tutto come deve!
Grazie mille!
Direi discussione CHIUSA!
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Ciao trapano, se non ho capito male ciò che a te serve e: inserire in un campo di ricerca il numero fattura e da quel numero fattura ti esce la scheda cliente ad esempio
Pippo
Codice cliente
Stato pagamenti
Stato fattura ecc...
Se sbaglio correggimi.

Ciao Cris8380... scusa, non avevo proprio letto il tuo post.. mi era sfuggito. Comunque grazie anche a te per aver provato ad aiutarmi.
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
A pensarci bene, e sbirciando il codice da Adeknite proposto, ho notato questa riga:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
Io ho copiato la pagina in un file nel mio server e funziona lo stesso (ho ovviamente cambiato anche il link).... non mi piaceva avere pagine su altri server che potrebbero essere spostate o cancellate...
Domanda: a che serve?
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
È la libreria jQuery hostata sui server di Google. Conviene utilizzarla per questioni di velocità, in quanto molto probabilmente è già presente sulla maggior parte delle macchine che visualizzano il tuo sito.
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
48
Si, ho visto che è su google. Ma dici che ho fatto male a copiarla sul mio server? Era meglio usare direttamente la loro?
Considera che è un programma mio personale per una semplice lista di pagamenti... non è un sito che deve essere visto dal mondo...
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Array associativi php su 2 campi mysql PHP 10
L Campi obbligatori form php PHP 0
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
L [PHP] Form da select compilare campi automaticamente PHP 1
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
M [PHP] Compilare campi in automatico con dati presi dal DB PHP 25
M [PHP] Sommare due campi calcolati PHP 3
P [PHP] Intercettare ed aggiornare campi di un database PHP 5
M [PHP] Escludere campi non valorizzati PHP 22
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
S [PHP] form campi a completamento automatico dal DB PHP 5
F Controllo dati sui campi di input tramite php PHP 1
paloppa [PHP] Campi che appaiono dopo aver compilato un determinato campo PHP 7
X [PHP] campi obbligatori multiupload non funziona PHP 6
T4MAR4 [PHP] ricercare età con piu campi PHP 2
T4MAR4 [PHP] Inserire piu campi di ricerca PHP 2
A [PHP] [RISOLTO]Compilazione campi form da record db PHP 3
E [PHP] mail inviata anche con campi obbligatori non compilati PHP 9
Samuele Ronzani [PHP] Validazione e invio campi form. PHP 7
D [WordPress] [PHP] Pulsante per auto riempire i campi in un modulo WordPress 1
Trapano [PHP] modifica simultanea di più campi nel db PHP 1
E Modulo PHP con campi Select PHP 7
N [PHP] inserire campi tabella in file word PHP 0
P [PHP] Loop WHILE aggiornamento campi e tabelle. PHP 2
E [PHP] Check tra 2 campi della stessa tabella PHP 14
L [PHP] Sommare campi e aggiornare tabella PHP 14
L [PHP] ricerca per un campo o per più campi PHP 5
Marco_88 Autenticazione PHP/OOP campi vuoti PHP 26
andrea.peo Autocomplete Jquery php mysql su più campi inpunts jQuery 8
Z Controllo campi di un form php PHP 5
G php asincrono con ajax 2 campi di verifica PHP 1
A Sommare campi stringa MYSQL PHP PHP 3
K Problema ricerca con piu campi in php PHP 3
alessandro1997 Form con campi multipli in PHP PHP 5
F campi obbligatori PHP PHP 18
S Come impostare campi non obbligatori php PHP 5
ElfoDelBasket [php-mysql] Prelevare i valori dai campi Enum/Set PHP 5
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0

Discussioni simili