Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. spokke
    3. Post
    S

    spokke

    @spokke

    • Profilo
    • Chi segue 0
    • Da chi è seguito 0
    • Discussioni 0
    • Post 5
    • Migliore 0
    • Gruppi 0
    Iscrizione Ultimo Accesso
    0
    Reputazione
    5
    Post
    0
    Visite al profilo
    0
    Da chi è seguito
    0
    Chi segue
    User Newbie

    Post creati da spokke

    • RE: Come fare i Totali in una Tabella ?

      risolto 😛
      modificando descrizione.js
      function stateChanged()
      {
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      {
      document.getElementById("prezzo"+riga).innerHTML=xmlHttp.responseText
      }
      }

      ora funziona tutto solo che non riesco a far aggiornare i totali della tabella ...

      ho provato onchange ma siccome sono + di un evento ho pensato di fare una funzione unica ...

      che aggiorna la singola riga ed i totali ...
      ma non funge ...

      ecco il codice

      
      <script type="text/javascript">
      function ricalcola(k){
      
      document.fattura.importo"+k+".value=(document.fattura.prezzo"+k+".value * document.fattura.quantita"+k+".value).toFixed(2)
      document.fattura.tot_imponibile.value=k;
      }
      </script>
      
      

      da notare che la seconda riga di test inserisce correttamente il valore della riga sul totale ...
      la funzione è richiamata da
      onChange="ricalcola(<?=$i;?>);"

      qualche idea ?
      grazie
      ❌x:x

      postato in Coding
      S
      spokke
    • RE: Come fare i Totali in una Tabella ?

      @Privacy-Impresa said:

      Secondo me il problema è che usando l'innerhtml sostituisci quello che c'è nel div... ma poi devi pure stamparle? perchè se le devi stampare potresti anche selezionare nei menu a tendina gli articoli e poi mandando l'invio si apre la fattura ben formattata, con gli articoli scritti come testo e non nel select e anche l'importo scritto come testo, selezionando dal database il prezzo in base all'articolo...

      Ad ogni modo prova a inviare con innerhtml non solo il prezzo, ma tutto l'elemento input, tag compresi...

      keiske
      allora forse ho avuto l'illuminazione ma non riesco a farla funzionare :arrabbiato:
      ho modificato descrizione.php in questo modo

      
      <?
      include("connect.php");
      $db = mysql_connect($db_host, $db_user, $db_password);
      mysql_select_db($db_name, $db)
      or die ("Errore nella selezione del database. Verificare i parametri ");
      $q=$_GET["q"];
      $codice=$_GET["cod"];
      $sql="SELECT * FROM articoli WHERE codice = '".$q."'";
      
      $result = mysql_query($sql);
      while($row = mysql_fetch_array($result))
      {
       echo "
       <input maxlength=\"6\" size=\"6\" readonly=\"readonly\" name=\"importo" . $codice . "\" value=" . $row['importo'] . ">";
      }
      
      
      ?>
      

      e richiamandolo direttamente funziona... restituisce un input box con nome corretto ed importo corretto ...

      invece questo è un pezzo del file principale nuova_fattura.php ....

       
      <-------cut--------->
      <? for ($i=1;$i<8;$i++){?>
        <tr class="bodystyle">
          <td><div align="center">
            <select name="codice<?=$i;?>" id="codice<?=$i;?>" onchange="mostraarticolo('this.value', '<? print $i;?>')" >
                  <option selected="selected" value="null">Scegli un articolo ....</option>
      
          <? $queryarticoli= "select * from articoli order by codice asc";
           $ris_articoli = mysql_query($queryarticoli) or die ("Query fallita");
           while($row_articoli=mysql_fetch_array($ris_articoli)){
          ?>
      
      
            <option value="<?=$row_articoli['codice']?>" ><? echo $row_articoli['descrizione'];}
      
      
        ?></option>
            </select>
          </div>      <div align="center"></div></td>
          <td><div align="center" id="riga<?=$i;?>">
            <input maxlength="6" size="6" readonly="readonly" name="importo<?=$i;?>" >
          </div></td>
          <td><div align="center">
            <input maxlength="2" size="4" readonly="readonly" name="iva<?=$i;?>" >
          </div></td>
          <td><div align="center">
            <input maxlength="2" size="4" readonly="readonly" name="prezzo<?=$i;?>" >
          </div></td>
          </tr>
          <? } ?>
      <-------cut--------->
      
      

      modificato per richiamare la funzione mostraarticolo passando il valore della select quindi il codice dell'articolo e in più il numero di riga ...

      la funzione javascript contenuta in descrizione.js invece l'ho modificata così

      var xmlHttp
      
      function mostraarticolo(str, codice)
      { 
      xmlHttp=GetXmlHttpObject()
      if (xmlHttp==null)
       {
       alert ("Browser does not support HTTP Request")
       return
       }
      var url="descrizione.php"
      url=url+"?q="+str+"&cod="+codice"
      xmlHttp.onreadystatechange=stateChanged 
      xmlHttp.open("GET",url,true)
      xmlHttp.send(null)
      }
      function stateChanged() 
      { 
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
       { 
       document.getElementById("test").innerHTML=xmlHttp.responseText 
       } 
      }
      
      function GetXmlHttpObject()
      {
      var xmlHttp=null;
      try
       {
       // Firefox, Opera 8.0+, Safari
       xmlHttp=new XMLHttpRequest();
       }
      catch (e)
       {
       //Internet Explorer
       try
        {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
       catch (e)
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
       }
      return xmlHttp;
      }
      

      il problema è che sembra come se non venisse affatto richiamata (anche guardando i log del server ) e non succede niente ...

      ho provato anche a modificare la parte

      document.getElementById("test").innerHTML=xmlHttp.responseText 
      

      in ```
      document.getElementById("importo"+codice).innerHTML=xmlHttp.responseText

      ma non funziona ... 
      
      qualche idea dai guru ajax + javascript + php + mysql ! :x:x
      postato in Coding
      S
      spokke
    • RE: Come fare i Totali in una Tabella ?

      @Privacy-Impresa said:

      partiamo dal ragionamento puro senza codice:

      a te serve una pagina dove hai una riga dove puoi selezionare un prodotto tra tutti quelli che hai in database, da un menu a tendina... e a seconda del prodotto che selezioni di fianco deve apparire il prezzo...

      poi ti serve avere più righe così o ne basta una? se devi fare una fattura con 5 prodotti, uno per riga?

      cmq partiamo da una riga sola:

      1. query al DB per estrarre tutti i prodotti in database e estraiamo anche i prezzi per ogni prodotto.
      2. popolamento dinamico di un select con i prodotti
      3. creazione del div dove far apparire il prezzo
      4. associazione nel div del prezzo col prodotto

      siccome a seguito della query hai le variabili salvate in un array potresti usare il dom (o innerhtml) per scrivere nel div il prezzo corrispondente al prodotto... ad esempio:

      on select prodotto-10 <- innerhtml sul div col prezzo del prodotto-10 che hai ancora salvato nell'array dell query...

      keiske

      intanto grazie per la risposta...
      teoricamente le righe sono più di una però partendo da una sola per poi replicare ho lo stesso tipo di problema ..
      ho provato con ajax e con innerhtml a far apparire il prezzo su un div qualunque (esterno alla tabella) e funziona ma mettendo come destinazione il div che contiene linput type di tipo text non funziona ...
      (mistero:x)
      posto l'html generato dal php ...

      
      
      <html>
      <head>
      
      <script src="descrizione.js"></script>
      
      
      
      
      
      </head>
      <body>
      <form name=fattura method="post" action="crea_fattura.php">
      
      <------cut--------->>>>>
      
      
      <table width="100%" border="1" align="center">
        <tr>
          <th width="65%" class="big" scope="col"><div align="center">Descrizione</div>      <div align="center"></div></th>
          <th width="8%" class="big" scope="col"><div align="center">Quantita</div></th>
          <th width="8%" class="big" scope="col"><div align="center">Importo</div></th>
          <th width="8%" class="big" scope="col"><div align="center">Iva</div></th>
          <th width="11%" class="big" scope="col"><div align="center">Prezzo</div></th>
          </tr>
        <tr class="bodystyle">
          <td colspan="4"></td>
          </tr>
          <tr class="bodystyle">
          <td><div align="center">
            <select name="codice0" id="codice0" onchange="getprezzo(this.value)" >
                  <option selected="selected" value="null">Scegli un articolo ....</option>
      
          
      
            <option value="1" >Articolo di Test
      
            <option value="2" >articolo 2
      
            <option value="3" >Articolo di test 3
      
            <option value="4" >Articolo di test 2
      
            <option value="5" >articolo 55
      
            <option value="88" >test</option>
            </select>
          </div>      <div align="center"></div></td>
          <td><div align="center">
            <input maxlength="4" size="4"  name="quantita0" >
          </div></td>
          <td><div align="center">
            <input maxlength="6" size="6" readonly="readonly" name="importo0" >
          </div></td>
          <td><div align="center">
            <input maxlength="2" size="4" readonly="readonly" name="iva0" >
          </div></td>
          <td><div align="center">
            <input maxlength="2" size="4" readonly="readonly" name="prezzo0" id="prezzo0" >
          </div></td>
          </tr>
          </table>
      <p align="center">
        <input type="submit" name="lanciaform" value="Inserisci Fattura">
      </p>
      </div>
      
      </form> 
      
      </body>
      </html>
      
      
      

      modificando per esempio descrizione.js in questo modo

      var xmlHttp
      function getprezzo(str)
      { 
      xmlHttp=GetXmlHttpObject()
      if (xmlHttp==null)
       {
       alert ("Browser does not support HTTP Request")
       return
       }
      var url="descrizione.php"
      url=url+"?q="+str
      xmlHttp.onreadystatechange=stateChanged 
      xmlHttp.open("GET",url,true)
      xmlHttp.send(null)
      }
      function stateChanged() 
      { 
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
       { 
       document.getElementById("prezzo0").innerHTML=xmlHttp.responseText 
       } 
      }
      function GetXmlHttpObject()
      {
      var xmlHttp=null;
      try
       {
       // Firefox, Opera 8.0+, Safari
       xmlHttp=new XMLHttpRequest();
       }
      catch (e)
       {
       //Internet Explorer
       try
        {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
       catch (e)
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
       }
      return xmlHttp;
      }
      
      

      troviamo l'errore !: 😛

      postato in Coding
      S
      spokke
    • RE: Come fare i Totali in una Tabella ?

      @Privacy-Impresa said:

      Ho come l'impressione che il problema principale sia la soluzione scelta per gestire la tua fattura...

      Se tu hai il prodotto e il prezzo nel database dovresti fare in modo che quando selezioni un prodotto venga lanciata una query che ricava il prezzo e lo mette a fianco del prodotto... così dovresti gestire il tutto più facilmente di come hai impostato tu...

      keiske

      la domanda è : come si fa ? :arrabbiato:

      postato in Coding
      S
      spokke
    • RE: Come fare i Totali in una Tabella ?

      salve a tutti e complimenti per il forum ...
      prendo spunto da questa discussione per esporvi un mio problema ...
      allora devo fare un form per un inserimento di una fattura tutto con php mysql..
      nelle righe della descrizione ho una select che legge i valori direttamente da mysql vorrei che al momento della selezione si popolasse automaticamente il campo vicino con il prezzo del prodotto ...
      ho provato con ajax ma non ho risolto molto nel senso che il valore viene correttamente scritto su un div ma non riesco ad inserirlo nell'input box della riga corrispondente ...
      codice ...
      descrizione.js

      var xmlHttp
      function getprezzo(str)
      { 
      xmlHttp=GetXmlHttpObject()
      if (xmlHttp==null)
       {
       alert ("Browser does not support HTTP Request")
       return
       }
      var url="descrizione.php"
      url=url+"?q="+str
      xmlHttp.onreadystatechange=stateChanged 
      xmlHttp.open("GET",url,true)
      xmlHttp.send(null)
      }
      function stateChanged() 
      { 
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
       { 
       document.getElementById("nascosto").innerHTML=xmlHttp.responseText 
       } 
      }
      function GetXmlHttpObject()
      {
      var xmlHttp=null;
      try
       {
       // Firefox, Opera 8.0+, Safari
       xmlHttp=new XMLHttpRequest();
       }
      catch (e)
       {
       //Internet Explorer
       try
        {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
       catch (e)
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
       }
      return xmlHttp;
      }
      

      nuovafattura.php (la parte delle righe)

       <? for ($i=0;$i<8;$i++){?>
        <tr class="bodystyle">
          <td><div align="center">
            <select name="codice<?=$i;?>" id="codice<?=$i;?>" onchange="getprezzo(this.value)" >
      	  	  <option selected="selected" value="null">Scegli un articolo ....</option>
      
      	<? $queryarticoli= "select * from articoli order by codice asc";
      	 $ris_articoli = mysql_query($queryarticoli) or die ("Query fallita");
      	 while($row_articoli=mysql_fetch_array($ris_articoli)){
      	?>
      
      
      	  <option value="<?=$row_articoli['codice']?>" ><? echo $row_articoli['descrizione'];}
      
      
        ?></option>
            </select>
          </div>      <div align="center"></div></td>
          <td><div align="center">
            <input maxlength="6" size="6" readonly="readonly" name="importo<?=$i;?>" >
          </div></td>
          <td><div align="center">
            <input maxlength="2" size="4" readonly="readonly" name="iva<?=$i;?>" >
          </div></td>
          <td><div align="center">
            <input maxlength="2" size="4" readonly="readonly" name="prezzo<?=$i;?>" id="prezzo<?=$i;?>" >
          </div></td>
          </tr>
      	<? } ?>
      </table>
      <p align="center">
        <input type="submit" name="lanciaform" value="Inserisci Fattura">
      </p>
      </div>
      
      </form> 
      <br>
      <p>
      
      <p>
      <div id="nascosto"><b>User info will be listed here.</b></div>
      </p>
      </p>
      </body>
      </html>
      

      da notare che anche se cambio il div dell'input box (esempio prezzo1) nel file descrizione.js non viene popolato
      ho trovato solo esempi per popolare select in cascata e ho appena iniziato con ajax ...
      qualche idea o soluzione ?
      grazie a chiunque mi potrà aiutare

      postato in Coding
      S
      spokke