Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Aiuto con PHP ad oggetti

    Salve ragazzi,

    ho una tabella HTML che popolo attraverso dei dati recuperti dal DB tramite PHP e MySQl.

    Vorrei che alla pressione di un tasto presente sulla riga iesima, venga mosrata una popup in cui permetto di visualizzare i dati della riga selezionata. L'utente dovrebbe poter modificare questi dati e al click sul pulsante salva dovrei far visualizzare la riga in una seconda tabella.

    Ora fino alla prima parte tutto ok sono riuscito a fare tutto attraverso java Script.

    Quello che mi manca è invece far visualizzare gli oggetti modificati in un altra tabella.

    Avevo pensato di creare una classe PHP con cui posso memorizzare le informazioni che mi occorrono, quindi memorizzare i valori in una lista o array e quindi visualizzarli in una tabella.

    Io conosco bene java però in PHP non sono molto pratico.

    MI poete dare una mano??

    Come classe avevo creato questa non so se va bene però

    codice:
    <?php
    
    class Cart
    {
            var $codiceBarre;     // Queste sono le PROPERTIES
            var $nomeArticolo;
            var $quantita;
    
            function Cart()     // Questo � il COSTRUTTORE
            {
                    $this->codiceBarre = $GLOBALS['codiceBarre'];
                    $this->nomeArticolo = $GLOBALS['nome'];
                     
            }
    }
    ?>

  2. #2
    innanzi tutto la tua classe in PHP non è esatta, va scritta così

    Codice PHP:
    <?php

    class Cart
    {
            public 
    $codiceBarre;     // Queste sono le PROPERTIES
            
    public $nomeArticolo;
            public 
    $quantita;

            function 
    __construct()     // Questo è il COSTRUTTORE
            
    {
                    
    $this->codiceBarre $GLOBALS['codiceBarre'];
                    
    $this->nomeArticolo $GLOBALS['nome'];
                     
            }
    }
    ?>
    in secundis, cosa vuoi dire per "visualizzare i dati modificati in un'altra tabella"? visualizzare il record modificato nel popup dove lo hai modificato o aprire un'altro popup?

  3. #3
    No allora,

    ho una tabella con tipo 100 righe.

    Clicco su una riga, si apre una popup con i dati della riga, modifico i dati devo mostrare quei dati in un altra tabella.

    In pagina io ho due tabelle una sotto l'altra. La prma è piena supponiamo con 100 righe la seconda inizialmente è vuota.

    Ogni volta che edito una riga i dati modificati devono essere visualizzati nella seconda tabella

  4. #4
    se ho ben capito quindi quando hai modificato i dati del record il popup si deve chiudere e visualizzare quei dati nella seconda tabella. Bisogna quindi che da javascript nel codice del popup devi 1) salvi il record modificato; 2) tramite javascript crei un cookie con l'ID di quel record; 3) ricarichi la pagina che ha aperto il popup; 4) chiudi il popup.

    Quando ricarichi la pagina che ha aperto il popup (quella con due tabelle) carichi il cookie e tramite quello carichi il relativo record. Poi conti quanti record modificati ci sono e visualizzi il record subito sotto (ad esempio se hai modificato N record ne aggiungerai un altro nella riga N+1 della tabella).

    Spero di essere stato chiaro...

  5. #5
    Si teoricamente è così ma mi puoi fornire un pò di codice di esempio?

  6. #6
    è un pò lungo, ma vedo a pezzetti..nel codice del popup come hai detto usa la programmazione OOP come in Java, molto efficace anche qui...

    Codice PHP:
    <?php
      
    if ($record->salva()) {
        
    setcookie('recID'$record['ID']);
        if (
    $_COOKIE['modified'])
          
    setcookie('modified', (int) $_COOKIE['modified']++);
        else
          
    setcookie('modified'1);
        echo 
    '<script type="text/javascript">
                  window.opener.document.location.href="mostraTabelle.php?ok=1";
                  window.close();
                </script>'
    ;
    ?>
    la seconda parte è più lunga e compelssa (quella delle tabelle....)

  7. #7
    allora, posso magari potarti un pò di codice che ho scritto io??? Così mi aiuti meglio perchè non sono espertissimo del PHP fino a questo putno.

  8. #8
    codice:
    <?php
    $con = mysql_connect("localhost", "root", "password");
    
    if (!$con) {
        die("Error: " . mysql_error());
    }
    
    mysql_select_db("cassagestionalenegozionicola", $con);
    
    $result = mysql_query("SELECT a.nomearticolo,a.soglia,q.quantita,d.codicebarre FROM articolidett a, articoliquantita q, articoli d
    	where a.codarticolo = d.codarticolo and a.codarticolo = q.codarticolo;");
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title>DataTables</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
             <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css" />
    		  <link rel="stylesheet" type="text/css" href="css/style.css" />
            <script src="media/js/jquery.js" type="text/javascript"></script>
            <script src="media/js/jquery.dataTables.js" type="text/javascript"></script>
            <script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>
    		<script type="text/javascript" src="script/dhtmlPopup.js"></script>  
            <style type="text/css">
                @import "media/css/demo_table_jui.css";
                @import "media/themes/smoothness/jquery-ui-1.8.4.custom.css";
            </style>
            
            <style>
                *{
                    font-family: arial;
                }
            </style>
            <script type="text/javascript" charset="utf-8">
    		var arrayArticoli = new Array();
    		
                $(document).ready(function(){
                    $('#datatables').dataTable({
                        "sPaginationType":"full_numbers",
                        "aaSorting":[[2, "desc"]],
                        "bJQueryUI":true
                    });
                });
    			
    			function mostraArticoliOrdine(codiceBarre, nomeArticolo) {
    				 popUp = new DHTMLPopup(document.getElementById("innerFrame"), document.getElementById("draggBar"), '510', '200', 'Spazio e Capacità Giornaliere Richieste');
    			 	document.getElementById("codiceBarre").value=codiceBarre;
    	    		document.getElementById("nomeArticolo").value=nomeArticolo;
    				document.getElementById("quantita").value="";
    	  		    popUp.show(); 
    			}
    			
    			function saveRiga(){
    				
    			}
                
            </script>
            
        </head>
        <body>
    	<div data-role="page" id="home">
    		 <div data-role="header">
    			<h1>EasyManagement</h1>
    		  </div>
            <div data-role="content">
                <table id="datatables" class="display">
                    <thead>
                        <tr>
                            <th>Codice Barre</th>
                            <th>Nome Articolo</th>
                            <th>Quantità</th>
                            <th>Soglia Minima</th>
    						<th></th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                        while ($row = mysql_fetch_array($result)) {
                            ?>
                            <tr>
                                <td><?php echo $row['codicebarre']?></td>
                                <td><?php echo $row['nomearticolo']?></td>
                                <td><?php echo $row['quantita']?></td>
                                <td><?php echo $row['soglia']?></td>
    							<td>','<?php echo $row['nomearticolo']?>');">+</td>
                            </tr>
                            <?php
                        }
    					
                        ?>
                    </tbody>
                </table>
    			
    			
    			
    			
    			<table id="tableOrdini" class="display">
                    <thead>
                        <tr>
                            <th>Codice Barre</th>
                            <th>Nome Articolo</th>
                            <th>Quantità</th>
    						<th></th>
                        </tr>
                    </thead>
                    <tbody>
                        
                           
    						//qui sarebbe da completare
    						
    						</script>
    
                    </tbody>
                </table>
            </div>
    	</div>
    	
    	 <div id="screenLock" style="position:absolute;filter:alpha(opacity=6);background-color:#0000ff;z-index:1;display:none; height:100%;"></div>
    	
    	<div id="table-container">
    		<div id="innerFrame" class="divFrame">
    			<table class ="tableInnerFrame4" >
    				<tr height="20px">
    				<td width="100%" >
    					<table width="100%" cellspacing="0" cellpadding="0" border="0">
    					<tr>
    						<td class="colonnaPopUp" onmousedown="popUp.mouseDown(event);">
    						
    							<div id="draggBar" class="barraFrame" onMouseover="dragswitch=1;" onMouseout="dragswitch=0">
    								<font face="Verdana" color="#FFFFFF"></font>
    							</div>
    						</td>
    						<td class="classeX" style="cursor:hand">
    		        			<a style="cursor:hand" onclick="javascript:popUp.hide();">[img]images/x.png[/img]</a>
    		        		</td>
    					</tr>
    				   </table>
    				</td>  
    			   </tr>    
    			   <tr>
    				<td width="100%" bgcolor="#FFFFFF" style="padding:4px" colspan="2">
    				<div>	
    				<table style="border:0px" class="tableInnerFrame4">					
    							<tr>
    								<td style="text-align:left;border:0px;">Codice Barre</td>
    								<td style="text-align:left;border:0px">	<input id="codiceBarre" type="text" />	</td>								
    							</tr>
    							<tr>
    								<td style="text-align:left;border:0px">Nome Articolo</td>
    								<td style="text-align:left;border:0px">	<input id="nomeArticolo" type="text"/></td>
    							</tr>
    							<tr>
    								<td style="text-align:left;border:0px">Quantità</td>
    								<td style="text-align:left;border:0px"><input id="quantita" type="text"/></td>
    							</tr>						
    							<tr>
    								<td style="text-align:center;border:0px" colspan="2">
    									<input type="button" value="Inserisci" onclick="javascript:saveRiga();"/>
    									<input type="button" value="Esci" onclick="javascript:popUp.hide();"/>
    								</td>
    							</tr>
    	
    						</table>
    					</div>
    				</td>
    			 </tr>
    			</table>
    		</div>
    	</div>
        </body>
    </html>

  9. #9
    ecco qua..piu o meno dovrebbe essere questo il codice in PHP necessario! spero che ti aiuti, se hai ancora bisogno dimmelo!

    Codice PHP:
    <?php
      
    class DB {
        public function 
    recordArray($sql) {
          
    $array = array();
          
    $mysqli = new mysqli('localhost''user''password''cassaGestionaleNegozioNicola');
          if (
    $mysqli) {
            if (
    $result $mysqli->query($query)) {
              while (
    $row $result->fetch_assoc())
                
    $array[] = $row;
              
    $result->close();
            } else
                die (
    "Errore nella query: " $mysqli->error;)
          } else
              die(
    "Errore nella connessione: " $mysqli->connect_error);
          
    $mysqli->close();
          return 
    $array;
        }
      }
      
      
    $db = new DB();
      
    // valori passati dopo la ricarica di questa pagina e la chiusura di modificaOrdini.php
      
    $modificati $_COOKIE['modified'];
      
    $recID $_COOKIE['recID'];
      
    // metto in un array i codici a barre degli articoli già modificati
      
    for ($i=1$i<$modificati$i++;)
        
    $arrCodici[] = $_POST['codice-' $i];
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <title>DataTables</title>
        <meta charset="UTF-8">
        <script>
          function showWindow(sNomeWin, sPage, iWidth, iHeight) {
            var handle = window.open(sPage, sNomeWin, 'width=' + iWidth + ', height=' + iHeight + ', 0, 0, 0, 0, 0, 0, 0 ');
          }
        </script>
      </head>
      <body>
        <div id="home">
          <div data-role="header"><h1>EasyManagement</h1></div>
            <div>
              <table id="datatables" class="display">
                <thead>
                  <tr>
                    <th>Codice Barre</th>
                    <th>Nome Articolo</th>
                    <th>Quantità</th>
                    <th>Soglia Minima</th>
                    <th></th>
                  </tr>
                </thead>
                <tbody>
                <form id="articoli" method="post">
                <?php
                  $query 
    "SELECT a.nomearticolo,a.soglia,q.quantita,d.codicebarre FROM articolidett a, articoliquantita q, articoli d where a.codarticolo = d.codarticolo and a.codarticolo = q.codarticolo;"
                  
    $rows $db->recordArray($query);
                  if (
    count($rows)) {
                    while (
    $row mysql_fetch_array($result)) {
                      
    $tab '<tr><td>' $row['codicebarre'] . '</td><td>' $row['nomearticolo'] . '</td>';
                      
    $tab .= '<td>' $row['quantita'] . '</td><td>' $row['soglia'] . '</td>';
                      
    $tab .= '<td><input type="button" value="..." onclick="showWindow(\'MODIFICA ORDINI\', \'modificaOrdini?codice=' $row['codicebarre'] . '\', 500, 500)"></td>';
                      
    $tab .= '</tr>';
                    } 
    ?>
                </form>
                </tbody>
              </table>
              <?php if ($modificato) { ?>
              <?php // ci sono dei record modificati da visualizzare ?>          
              <table id="tableOrdini" class="display">
                <thead>
                  <tr>
                    <th>Codice Barre</th>
                    <th>Nome Articolo</th>
                    <th>Quantità</th>
                    <th></th>
                  </tr>
                </thead>
                <tbody>
                <?php 
                  
    for ($i=1$i<=$modificati$i++) {
                    
    $tab '<tr><td>' $row['codicebarre'] . '</td><td>' $row['nomearticolo'] . '<input type="hidden" name="codice-"' $i '"></td>';
                    
    $tab .= '<td>' $row['quantita'] . '</td><td>' $row['soglia'] . '</td>';
                    
    $tab .= '<td><input type="button" value="..." onclick="showWindow(\'MODIFICA ORDINI\', \'modificaOrdini?codice=' $row['codicebarre'] . '\', 500, 500)"></td>';
                    
    $tab .= '</tr>';
                  }
                  
    // aggiungo in fondo il record appena modificato
                  
    $row $db->recordArray("SELECT * FROM articoliDett WHERE codiceBarre = " $recID);
                  
    $tab '<tr><td>' $row['codicebarre'] . '</td><td>' $row['nomearticolo'] . '</td>';
                  
    $tab .= '<td>' $row['quantita'] . '</td><td>' $row['soglia'] . '</td>';
                  
    $tab .= '</tr>';
                
    ?>        
                </tbody>
              </table>
              <?php ?>
            </div>
        </div>
      </body>
    </html>

  10. #10
    Ciao allora ho iniziato a leggere il codice e a testarlo.

    Ho sfoltito un pò il codice, perchè non funzionava. Cose da poco un paio di parentesi graffe in meno. Nulla di che.

    Per ora mi dice che

    Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\easyOrdine\ceaOrdine2.php on line 76


    Di seguito il codice che sto provando

    Grazie ancora per il tempo dedicatomi
    codice:
    <?php
      class DB {
        public function recordArray($sql) {
          $array = array();
          $mysqli = new mysqli('localhost', 'user', 'password', 'cassaGestionaleNegozioNicola');
          if ($mysqli) {
            if ($result = $mysqli->query($query)) {
              while ($row = $result->fetch_assoc())
                $array[] = $row;
              $result->close();
            } else{
               // die ("Errore nella query: " . $mysqli->error[img]images/smilies/blink.gif[/img]
          } 
    	  }else{
              die("Errore nella connessione: " . $mysqli->connect_error);
          $mysqli->close();
          return $array;
        }
      }
      }
       $db = new DB();
      // valori passati dopo la ricarica di questa pagina e la chiusura di modificaOrdini.php
      $modificati = $_COOKIE['modified'];
      $recID = $_COOKIE['recID'];
      // metto in un array i codici a barre degli articoli già modificati
      for ($i=1; $i<$modificati; $i++)
        $arrCodici[] = $_POST['codice-' . $i]; 
    
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <title>DataTables</title>
        <meta charset="UTF-8">
        <script>
          function showWindow(sNomeWin, sPage, iWidth, iHeight) {
            var handle = window.open(sPage, sNomeWin, 'width=' + iWidth + ', height=' + iHeight + ', 0, 0, 0, 0, 0, 0, 0 ');
          }
        </script>
      </head>
      <body>
        <div id="home">
          <div data-role="header"><h1>EasyManagement</h1></div>
            <div>
              <table id="datatables" class="display">
                <thead>
                  <tr>
                    <th>Codice Barre</th>
                    <th>Nome Articolo</th>
                    <th>Quantità</th>
                    <th>Soglia Minima</th>
                    <th></th>
                  </tr>
                </thead>
                <tbody>
               <form id="articoli" method="post">
                <?php
                  $query = "SELECT a.nomearticolo,a.soglia,q.quantita,d.codicebarre FROM articolidett a, articoliquantita q, articoli d where a.codarticolo = d.codarticolo and a.codarticolo = q.codarticolo;";
                  $rows = $db->recordArray($query);
                  if (count($rows)) {
                    while ($row = mysql_fetch_array($result)) {
                      $tab = '<tr><td>' . $row['codicebarre'] . '</td><td>' . $row['nomearticolo'] . '</td>';
                      $tab .= '<td>' . $row['quantita'] . '</td><td>' . $row['soglia'] . '</td>';
                      $tab .= '<td><input type="button" value="..." onclick="showWindow(MODIFICA ORDINI, modificaOrdini?codice=' . $row['codicebarre'] . ', 500, 500)"></td>';
                      $tab .= '</tr>';
                    } ?>
                </form> 
                </tbody>
              </table>
             
            </div>
        </div>
    	 </div>
      </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.