[PHP] layout pagina con immagine codice a barre

crealatualista

Nuovo Utente
27 Feb 2017
19
0
1
28
Salve, ho un altro problema che mi sorge!
Praticamente ho creato un sito dove il venditore crea i codici a barre per i prodotti!
Ho diviso il layout in tre parti con i div
HTML:
<div id="container">
        <div id="left">
          <fieldset>
            <legend><h1>Macchine:</h1></legend>
              <input type="radio" name="macchina" value="55582258"> mercedes<br><br>
</fieldset></div>
        <div id="middle">
          <fieldset>
              <legend><h1>Lotto:</h1></legend>
             <input type="number" name="quantity" placeholder="Lotto"><br><br> 
             <input type="submit" name="invia" value="Invia">
</fieldset></div>
        <div id="right">
            <fieldset>
                <legend><h1>BARCODE:</h1></legend>

            </fieldset></div></div>

Il problema è che quando clicco il pulsante invia si apre un'altra pagina con il barcode (barcode.php, dove è presente il codice per realizzare codici a barre), ma in realtà la mia intenzione è quella di stampare il codice a barre sotto la sezione BARCODE!

Come posso fare??
Spero di essermi spiegato !
Grazie mille

PS: ho provato sia con header(Location:..... sia con include("barcode.php")! Ma il risultato è schermo nero!
 
Spero di essermi spiegato !
io non ho capito molto, ma provo a risponderti,
il barcode è generalmente un'immagine che viene visualizzata dove serve, quindi

pensando che nello script barcode.php vi sia la FUNZIONE barcode($stringa) che genera l'immagine,

includerei lo script nella pagina dove serve,

eseguirei la funzione passando come parametro la stringa da convertire in barcode, prima dell'utilizzo dell'immagine,
poi con "src img" o simili, visualizzerei l'immagine generata dalla funzione nella posizione sulla pagina

la funzione potrebbe restituire il nome del file generato, in modo da gestire più barcode sulla stessa pagina

sufficiente ?
 
  • Like
Reactions: crealatualista
Questo è l'index.php:
dove ci sono le tre divisioni (left, middle, right)

HTML:
<html>
<head><title>BARCODE</title></head>
<style>
#container {height: 100%; width:100%; font-size:0;}
#left, #middle, #right {display: inline-block; *display: inline; zoom: 1; vertical-align: top; font-size: 12px;}
#left {width: 25%;}
#middle {width: 25%;}
#right {width: 50%;}
</style>
<body>
    
    <form action = "barcode.php" method = "POST">
    <div id="container">
        <div id="left">
          <fieldset>
            <legend><h1>SUSHI:</h1></legend>
              <input type="radio" name="sushi" value="08033726442054"> GOURMET<br><br>
              <input type="radio" name="sushi" value="08033726441798"> BOX<br><br>
              <input type="radio" name="sushi" value="08033726440814"> CLASSIC<br><br>
              <input type="radio" name="sushi" value="08033726442368"> CHIRASHI<br><br>
              <input type="radio" name="sushi" value="08033726442344"> CRISPY SALMON MIX<br><br>
              <input type="radio" name="sushi" value="08033726442320"> SALAD ROLLS<br><br>
              <input type="radio" name="sushi" value="08033726442337"> SALMON SALD MIX<br><br>
              <input type="radio" name="sushi" value="08033726442351"> WASABI SALMON ROLL<br><br>
          </fieldset></div>
        <div id="middle">
          <fieldset>
              <legend><h1>SCADENZA e LOTTO:</h1></legend>
                      <br>
                  <input type="radio" name="data" value="conad">CONAD
                  <input type="radio" name="data" value="altro">ALTRO<br><br>
                  <input type="number" name="quantity" placeholder="Lotto"><br><br>           
                  <input type="submit" name="invia" value="Invia">
                  <input type="button" value="Scarica Immagine">
          </fieldset></div>
        <div id="right">
            <fieldset>
                <legend><h1>BARCODE:</h1></legend>

                  QUI DEVE STAMPARE IL CODICE A BARRE!

            </fieldset></div></div>
    
    
    
     </form>
</body>
</html>


Questo invece è il barcode.php:
dove crea il codice a barre!

PHP:
<?php
$sushi = $_POST['sushi'];
$data = $_POST['data'];
$lotto = $_POST['quantity'];
if($sushi == null || $data == null || $lotto == null){
    echo "Devi inserire tutti i campi";
}
if($data == "conad"){
    $data_scadenza = date('Y/m/d',strtotime('+3 day'));
      $scadenza = ( new DateTime($data_scadenza) )->format('ymd');
}else{
    $data_scadenza = date('Y/m/d',strtotime('+4 day'));
      $scadenza = ( new DateTime($data_scadenza) )->format('ymd');
}
$code_number= "(01)" .$sushi ."(15)" .$scadenza ."(10)" .$lotto;
require_once('barcode.inc.php');
$code_number = "(01)" .$sushi ."(15)" .$scadenza ."(10)" .$lotto;
new barCodeGenrator($code_number,0,'codice.gif', 350, 130, true);
?>

Io se aggiungo la funzione nella pagina che serve sempre nera è la schermata

Come posso fare??

Grazieee
 
credo che la soluzione più semplice sia usare le funzioni di jquery, in particolare
al click del bottone "Invia" è possibile attivare una richiesta Ajax affinché barcode.php venga eseguito, producendo il risultato
barcode.php può restituire messaggi di errore che vengono visualizzati nella div "barcode"
upload_2017-9-19_16-11-5.png

oppure la soluzione
upload_2017-9-19_16-12-7.png

in questo modo si evita di ricaricare la pagina eliminando così la gestione delle "session"

con jquery, le modifiche sono minime e meno gravose, per visualizzare l'immagine, è sufficiente
Codice:
$('#barcode').prepend($('<img>',{id:'theImg',src:'codice.gif'}))

vi sono alcune considerazioni legate al funzionamento,
in particolare anche se non "checked" i radio button restituiscono un valore di default che inficia i controlli fatti in barcode.php
insomma oltre a definire bene la logica, ci sono anche altri aggiustamenti che dovresti prendere in considerazione
 

Discussioni simili