Funzione crea barcode e controllo...

Emix

Utente Attivo
15 Feb 2010
596
0
16
Buonasera a todos :beer:

Ho la necessita di far creare un barcode (se premuto un pulsante) che sia INESISTENTE nel db.. Ho fatto questo codice ma non capisco perche non va.. non mi genera NULLA
Questo è il codice:


PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<?php
include ('connect.php');
function codice() {
     $nums = '0123456789';
     // $len = 10; // = strlen($nums)
     $s = '';

     for($i = 0; $i < 13; $i++) {
          $s .= $nums[rand() % 10]; // = rand() % $len
     }

     return $s;
}
function controllo_codice(){
$generato = codice(); // qui hai il codice di 16 cifre  

while(mysql_num_rows(mysql_query("SELECT * FROM articoli WHERE barcode='$generato'"))) { // genera un altro codice
    $generato = codice();
}
}
codice();
controllo_codice();
 echo "il codice generato è:". $s;
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" name="genera"> 
<table width="480" height="382" border=0 align="center" cellpadding=5 cellspacing=5>
  <tr>
<td><font face="Eras Medium ITC">Barcode:</font></td><td width="234">
<input type=text name="Barcode" size=35 maxlength=40 value="
<?php
codice();
controllo_codice();
echo $generato;
?>"></td>
>
</tr>
<tr>
<td colspan="2">
    <input name="genera" type="submit" id="genera" value="Genera"> 
</td>
</tr>
</body>
</html>
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Tu setti le variabili dentro a delle funzioni non puoi richiamarle all'esterno, prova cosi devi usare global

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Documento senza titolo</title> 
</head> 

<body> 
<?php 
include ('connect.php'); 
$s = '';
$generato = '';
function codice() { 
     $nums = '0123456789'; 
     // $len = 10; // = strlen($nums) 
     global $s;

     for($i = 0; $i < 13; $i++) { 
          $s .= $nums[rand() % 10]; // = rand() % $len 
     } 

     return $s; 
} 
function controllo_codice(){ 
 global $generato;

$generato = codice(); // qui hai il codice di 16 cifre   

while(mysql_num_rows(mysql_query("SELECT * FROM articoli WHERE barcode='$generato'"))) { // genera un altro codice 
    $generato = codice(); 
} 
} 
codice(); 
controllo_codice(); 
 echo "il codice generato è:". $s; 
?> 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" name="genera">  
<table width="480" height="382" border=0 align="center" cellpadding=5 cellspacing=5> 
  <tr> 
<td><font face="Eras Medium ITC">Barcode:</font></td><td width="234"> 
<input type=text name="Barcode" size=35 maxlength=40 value=" 
<?php 
codice(); 
controllo_codice(); 
echo $generato; 
?>"></td> 
> 
</tr> 
<tr> 
<td colspan="2"> 
    <input name="genera" type="submit" id="genera" value="Genera">  
</td> 
</tr> 
</body> 
</html>
 
Ultima modifica:

Emix

Utente Attivo
15 Feb 2010
596
0
16
Ok infatti ora funziona tutto, grazie...
Ho solo un piccolissimo problema...
Come faccio a far si che il codice lo genera SOLAMENTE se clicco io il pulsante genera? riporto il codice corretto..

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Documento senza titolo</title> 
</head> 

<body> 
<?php 
include ('connect.php'); 
$s = '';
$generato = '';
function codice() { 
    // $nums = '0123456789'; 
     $len = 10; // = strlen($nums) 
     global $s;

     for($i = 0; $i < 13; $i++) { 
          $s .=  rand() % $len ;
		  //$nums[rand() % 10]; // = rand() % $len 
     } 

     return $s; 
} 
function controllo_codice(){ 
 global $generato;

$generato = codice(); // qui hai il codice di 13 cifre   

while(mysql_num_rows(mysql_query("SELECT * FROM articoli WHERE barcode='$generato'"))) { // genera un altro codice 
    $generato = codice(); 
} 
}  
?> 
<form action=" <?php echo htmlspecialchars($_SERVER['PHP_SELF']);?> " method="post" name="genera">  
<table width="480" height="382" border=0 align="center" cellpadding=5 cellspacing=5> 
  <tr> 
<td><font face="Eras Medium ITC">Barcode:</font></td><td width="234"> 
<input type=text name="Barcode" size=35 maxlength=40 value=" 
<?php
controllo_codice(); 
 echo $generato; 
?>"></td> 
</tr> 
<tr> 
<td colspan="2"> 
    <input name="genera" type="submit" id="genera" value="Genera">  
</td> 
</tr> 
</body> 
</html>
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Controlla se è settata la variabile

PHP:
<?php 
if(isset($_POST['genera'])){
controllo_codice();  
 echo $generato;  
}
?>
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Sei stato gentilissimo... Funziona alla perfezione... Una domanda... Siccome questa sorta di scriptino va integrato alla creazione dell'articolo, per fare ciò includo la pagina nella pagina di creazione e richiamo la variabile vero?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Si, ma ovviamente dipende poi dalla struttura dell'altra pagina, prova e guarda
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
non ci riesco... Se inserisco l'input di generazione mi chiude il form principale...
Il codice della pagina di inserimento è questo :

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inserimento Nuovo Articolo</title>
<style type="text/css">
body {
font: Eras Medium ITC;
color:#FFF
}
</style>

<style type="text/css">
#main {
	width:672px;
	height:300px;
	position:absolute;
	top:30%;
	left:50%;
	margin:-150px 0 0 -336px;
}
</style>
</head>
<body bgcolor="#000000">
<FORM METHOD ="post" action="insert_art.php">
<div id="main">
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p align="center"><img src="images/logo.png" align="middle" ></p>
<table width="480" height="382" border=0 align="center" cellpadding=5 cellspacing=5>
  <tr>
<td><font face="Eras Medium ITC">Codice:</font></td><td width="234">
<input type=text name="Codice" size=35 maxlength=40 value=""></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Barcode:</font></td><td>
<input type=text name="Barcode" onKeyUp="vendita()" value="" size=35 maxlength=40 ></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>

<tr>
<td><font face="Eras Medium ITC">Descrizione:</font></td><td>
<input type=text name="Descrizione" size=35 maxlength=40 value=""></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Fornitore:</font></td>
<td>
<p>Scegli il Fornitore<br>
<select name="Fornitore">
<option value="Option 1" selected></option>
<option value="Della Rovere">Della Rovere</option>
<option value="P&G Line">P&G Line</option>
<option value="Passigatti">Passigatti</option>
<option value="Niko">Niko</option>
<option value="Gate 31">Gate 31</option>
<option value="Fantasy Coral">Fantasy Coral</option>
</select>
</p>
</td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Reparto:</font></td><td>
<input type=text name="Reparto" size=35 maxlength=40 value=""></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Unità di misura:</font></td><td>
<input type=text name="UM" size=35 maxlength=40 readonly value="PZ"></td>
<td></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">IVA:</font></td><td>
<input type="text" name="IVA" readonly value="21" size=35 ><br></td>
<td></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Listino Fornitore:</font></td><td>
<input type=text name="Listino_Fornitore" size=35 maxlength=40 value=""></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Acquisto:</font></td><td>
<input type="text"  name="Acquisto" onKeyUp="vendita()" value="1" id="Acquisto" size=35/></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">% Ricarico:</font></td><td>
<input type="text"  name="Ricarico" onKeyUp="vendita()" value="1" id="Ricarico" size=35/></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Prezzo vendita:</font></td><td>
<input type="text" readonly value="0" name="Vendita" id="Vendita" size=35/></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Quantità Lucio Papirio:</font></td><td>
<input type=text name="qnt_lucio" size=35 maxlength=40 value=""></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td><font face="Eras Medium ITC">Quantità Tivoli:</font></td><td>
<input type=text name="qnt_tivoli" size=35 maxlength=40 value=""></td>
<td>
  <img src="images/campoobbligatorio.png"></td>
</tr>
<tr>
<td>
<legend>Causale:</legend></td>
<td>
 <input type="checkbox" name="carico" value="carico"/> Carico
 <input type="checkbox" name="caricoreso" value="caricoreso"/>Carico per reso 
 </td>
 <td>
  <img src="images/campoobbligatorio.png"></td>
 </tr>
<tr><td></td><td>
	<p align="center">
	<input type=submit value="Inserisci articolo" name="B1" style="font-weight: 700"></td></tr>
<tr width="480">
<td colspan="2">
<font face="Eras Medium ITC" size="-3">I campi contrassegnati da <img src="images/campoobbligatorio.png"> sono obbligatori.</font></td>
</tr>
</table>
</div>
</form> 
<script type="text/javascript">
function vendita() {
    var Acquisto = 0.0+document.getElementById('Acquisto').value;
    var Ricarico = 0.0+document.getElementById('Ricarico').value;
    if (Acquisto <= 0 || Ricarico <= 0){
        document.getElementById('Vendita').value = "--";
    }else{
        //var ven = parseInt((acq * 100) / ric);
        //var numero = (acq * ric) / 100;
        var numeroivato = Acquisto*(1+Ricarico/100);
        var Vendita = numeroivato.toFixed(2);
        document.getElementById('Vendita').value = Vendita;
    }
}
</script>
</body>
</HTML>

e quello di generazione del codice è questo :

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Documento senza titolo</title> 
</head> 

<body> 
<?php 
include ('connect.php'); 
$s = '';
$generato = '';
function codice() { 
    // $nums = '0123456789'; 
     $len = 10; // = strlen($nums) 
     global $s;

     for($i = 0; $i < 13; $i++) { 
          $s .=  rand() % $len ;
		  //$nums[rand() % 10]; // = rand() % $len 
     } 

     return $s; 
} 
function controllo_codice(){ 
 global $generato;

$generato = codice(); // qui hai il codice di 13 cifre   

while(mysql_num_rows(mysql_query("SELECT * FROM articoli WHERE barcode='$generato'"))) { // genera un altro codice 
    $generato = codice(); 
} 
}  
?> 
<form action=" <?php echo htmlspecialchars($_SERVER['PHP_SELF']);?> " method="post" name="genera">  
<table width="480" height="382" border=0 align="center" cellpadding=5 cellspacing=5> 
  <tr> 
<td><font face="Eras Medium ITC">Barcode:</font></td><td width="234"> 
<input type=text name="Barcode" size=35 maxlength=40 value=" 
<?php
if(isset($_POST['genera'])){
controllo_codice();  
 echo $generato;  
} 
?>"></td> 
</tr> 
<tr> 
<td colspan="2"> 
    <input name="genera" type="submit" id="genera" value="Genera">  
</td> 
</tr> 
</body> 
</html>

Non capisco come fare per inserire solamente un tasto genera a fianco del barcode che richiami la generazione... devo fare in modo che il barcode possa essere generato sia tramite lettura con scanner e sia tramite generazione automatica...
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Beh tu hai fatto 2 pagine distinte praticamente, devi prendere le funzioni in php e adattarle in quella pagina con un altro form, trasferisci quella parte di la senza copiare il form ma solo l'input e la parte in php, oppure mettere quelle funzioni in una pagina a parte e includerla dove ti serve adattandolo di volta in volta


Ad esempio fai una pagina da usare nei form solo con questa parte

PHP:
<?php  
include ('connect.php');  
$s = ''; 
$generato = ''; 
function codice() {  
    // $nums = '0123456789';  
     $len = 10; // = strlen($nums)  
     global $s; 

     for($i = 0; $i < 13; $i++) {  
          $s .=  rand() % $len ; 
          //$nums[rand() % 10]; // = rand() % $len  
     }  

     return $s;  
}  
function controllo_codice(){  
 global $generato; 

$generato = codice(); // qui hai il codice di 13 cifre    

while(mysql_num_rows(mysql_query("SELECT * FROM articoli WHERE barcode='$generato'"))) { // genera un altro codice  
    $generato = codice();  
}  
}   
?>
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
ok e l'ho fatta, ma ora se voglio farlo generare devo creare un pulsante di generazione... Ma se faccio il pulsante mi sfarfalla il form principale...
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
ci sono due form... e mi coincide con l'altro submit... inoltre mi sfarfalla la struttara...
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Come faccio a inserire una form dentro una form? e soprattutto non far intralciare i due submit?
 
Discussioni simili
Autore Titolo Forum Risposte Data
T funzione che crea link e lo inserisce nell'input Javascript 1
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Variabile non risconosciuta dentro una funzione PHP 1
P Implementazione funzione FileReader Javascript 0
P Funzione copia multipla. Javascript 2
P Funzione jQuery Ajax invio file a php jQuery 1
A Funzione read URL PHP 6
F Funzione Glob - ricerca file contenente una parola PHP 1
A Mail con funzione mail() riconosciute come spam PHP 9
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
A funzione iconv () non mi funziona PHP 4
D Come usare funzione php PHP 6
Y verificare condizione dopo esecuzione della funzione Programmazione 0
IClaude Funzione Javascript Javascript 8
A Funzione share come modificarla Social Media Marketing 0
L funzione onclik con seno e coseno non va Javascript 3
L funzione onclick non va Javascript 26
G modifica corretta funzione da eregi() a preg_match() PHP 3
Shyson Modificare funzione php PHP 15
L pdo (stampare un valore con ritorno a funzione) PHP 0
elpirata Funzione conversione da minuti in ore Javascript 0
@ [MS Access] Funzione Iif..is null... Database 0
F Funzione deprecata in PHP7 PHP 1
G [MS Access] Funzione ARROTONDA non definita nell'espressione MS Access 1
max1974 [Javascript] Funzione Errata procedura Javascript 2
pjtertdj Visualizzazione dati in php da mysql con funzione matematica in javascript PHP 1
Domenico_Falco1 Associare una stessa funzione get a due eventi a.click con classi differenti Ajax 6
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
L Problema funzione mail() PHP PHP 3
elpirata [Javascript] Lo script alle volte funzione altre volte no Javascript 0
V [Visual Basic] Richiamare funzione su modulo per restituire list Visual Basic 0
R [Photoshop] funzione colore automatico Photoshop 0
maxnegri [PHP]Funzione di calcolo prezzo di una camera in un range di date PHP 62
L [PHP] problema count messo in una funzione. PHP 1
Monital funzione php si ripete due volte PHP 6
GiErre [PHP] [HTML] Disabilitare un link in funzione della piattaforma PHP 7
Monital Funzione php e campo database come variabile PHP 6
M Recuperare ID e usarlo in funzione jQuery 2
M PHP - Funzione non e scrive il risultato PHP 3
R [Javascript] Rendere una funzione sempre visibile Javascript 2
M funzione mysql che ritorna i microsecondi a partire dal 1-1-1970 MySQL 3
batmanLF [MySQL] Problema funzione SUM MySQL 1
F [PHP] La funzione setcookie PHP 0
F [Photoshop] sovrapporre due immagini usando funzione batch Photoshop 0
otto9due Capire la funzione del parametro event passato alla funzione.. jQuery 1
A [Javascript] tabella dinamica e onchange su funzione Javascript 1
M Problema con connessione MySqli e funzione PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
A [PHP] Problema invio mail con funzione mail() PHP 3
C Creazione di una funzione per il filtraggio dei campi di un db Presentati al Forum 0

Discussioni simili