Come posso impostare a grandi linee questa tabella?

simo10piu

Nuovo Utente
4 Mag 2009
24
0
0
Ciao a tutti, volevo chiedere qualche consiglio per eseguire questo:

Una lista di articoli, si scelgono quelli da ordinare, si indicano le quantità, si clicca su stampa. A questo punto, si arriva ad una pagina (impostata solo per la stampa), dove verranno visualizzati/impaginati solo gli articoli che sono stati selezionati nella checkbox, con a fianco le quantità. Stavo pensando anche di eliminare le checkbox se è possibile effettuare un controllo del tipo: se sono state inserite quantità visualizza l'articolo....
Voi come la organizzereste la cosa?
Io non ho molte conoscenze di php, ma mi piace molto imparare.

Per ora quello che ho scritto è:

<table>
<tr>
<td>cod. 99290034 &nbsp; &nbsp;</td><td>Per tempera &nbsp; &nbsp; &nbsp;</td>
<td><input type="checkbox" name="scatola[]">&nbsp; &nbsp; &nbsp;
<input type="text" name="quantita1" maxlength="7" size="7" onClick="this.select();" value="Quante?"></td>
</tr>
<tr>
<td>cod. 99290032 &nbsp; &nbsp;</td><td> Piccola Collage &nbsp; &nbsp; &nbsp;</td>
<td><input type="checkbox" name="scatola[]" value="no">&nbsp; &nbsp; &nbsp;
<input type="text" name="quantita2" maxlength="7" size="7" onClick="this.select();" value="Quante?"></td>
</tr>
<tr>
<td>cod. 99290061 &nbsp; &nbsp;</td> <td>Standard media robusta &nbsp; &nbsp; &nbsp;</td>
<td><input type="checkbox" name="scatola[]" value="no">&nbsp; &nbsp; &nbsp;
<input type="text" name="quantita3" maxlength="7" size="7" onClick="this.select();" value="Quante?"></td>
</tr>
ecc......

Solo che cosi facendo non credo mi passi il codice articolo....avrei bisogno che nell'altra pagina venga visualizzato il codice articolo e la quantità da ordinare....

Consigli?

Grazie ciao
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
io proverei in questo modo, anche se non so da dove proviene il codice e la descizione (da un db?)
in questo modo non devi usare le checkbox.
eventualmente metti anche un controllo js sulla pagina dell'elenco per vedere se la quantità è un numero

pagina visualizzazione
PHP:
<?php
if(isset($_POST['ORDINA'])){
	$ordinato=array();
	unset($_POST['ORDINA']);
	$ordinato=$_POST;
	foreach($ordinato['quantita'] as $chiave => $valore){
		if($valore !="Quante?"){
			//più un controllo che $valore sia un numero maggiore di zero
			echo "codice $chiave : quantità $valore <br>";
		}
	}
}
?>
pagina elenco prodotti
HTML:
<form action="#" method="post">
<table>
<tr>
<td>cod. 99290034 &nbsp; &nbsp;</td><td>Per tempera &nbsp; &nbsp; &nbsp;</td>
<td>
<input type="text" name="quantita[99290034]" maxlength="7" size="7" onClick="this.select();" value="Quante?"></td>
</tr>
<tr>
<td>cod. 99290032 &nbsp; &nbsp;</td><td>Piccola Collage &nbsp; &nbsp; &nbsp;</td>
<td>
<input type="text" name="quantita[99290032]" maxlength="7" size="7" onClick="this.select();" value="Quante?"></td>
</tr>
<!-- eccetera............ -->
<tr>
<td>&nbsp; &nbsp;</td><td>&nbsp; &nbsp; &nbsp;</td>
<td><input name="ORDINA" type="submit" id="invia" value="ordina"></td>
</tr>
</table>
</form>
 

simo10piu

Nuovo Utente
4 Mag 2009
24
0
0
grazie mille borgo per la risposta!
Io sono proprio principiante ma nell'attesa, mi sono scervellato ed avevo pensato e scritto una cosa così:

<?php

$quantarray= array();

if (isset($_POST["quantita"])){
$quantarray = $_POST["quantita"];

$checkboxArray = array();

if (isset($_POST["scatola"])){
$checkboxArray = $_POST["scatola"];

foreach ($checkboxArray as $check_box_value) {
echo "$check_box_value\n";
echo "$quantarray";
}

}
?>

Sottolineo che nell'elenco prodotti nel form ho messo al value del text la scritta : quantita[].
E nella checkbox, ho dato come value, il codice dell'articolo.
Il mio intento era praticamente quello di creare un array sia per il codioce articolo tramite checkbox e sia per le quantità.
Poi richiamarle nell'altra pagina con 2 foreach (ehm credo...se è possibile) o con uno solo...
Ah, ovvio alla mia idea manca quel qualcosa che controlla e non mostra codici di articoli senza quantità.....

Che ne dici???? Era almeno un idea fattibile? Giusto per la soddisfazione :cool:
Io intanto provo il tuo script e vediamo.
Ciao grazie tante
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
tu giustamente trasmetti col post i due array, ma nel ciclo
PHP:
<?php
//....
foreach ($checkboxArray as $check_box_value) {
	echo "$check_box_value\n";
	echo "$quantarray"; 
}
//....
?>
tu cicli l'array $checkboxArray e non l'array $quantarray, così ad occhio e croce, l'uotput dovrebbe essere
solo dato dai valori delle chek (codice articolo) e l'echo "$quantarray" non ti da nulla (forse la scritta array)

p.s.
quando scrivi del codice, racchiudili tra i tag che servono # o <> o php
 

simo10piu

Nuovo Utente
4 Mag 2009
24
0
0
Ciao Borgo ancora grazie per la risposta.
Ho provato scervellandomi un metodo mio :) ed ho provato il tuo metodo (che funziona perfettamente!) l'unica è che in entrambi i casi mi vengono elencati nache i prodotti che non sono da ordinare, io vorrei che quelli con il no o con lo 0 o senza un numero cmq, non vengano nemmeno messi nella lista....è possibile fare una roba così?

Poi una domanda, nel tuo metodo c'è una variabile $chiave, è una variabile globale che sta per quello contenuto nelle quadre dell'array?

Questo poi è il mio metodo, certo il tuo è molto semplice godendo della tua esperienza :) ma anche il mio funziona! :):):)

Pagina prodotti (3 esempi):

<table>
<tr>
<td>cod. 99290034 &nbsp; &nbsp;</td><td>Per tempera &nbsp; &nbsp; &nbsp;</td>
<td>
<input type="text" name="codice1" maxlength="7" size="7" onClick="this.select();" value="no"></td>
</tr>
<tr>
<td>cod. 99290032 &nbsp; &nbsp;</td><td>Piccola collage &nbsp; &nbsp; &nbsp;</td>
<td>
<input type="text" name="codice2" maxlength="7" size="7" onClick="this.select();" value="no"></td>
</tr>
<tr>
<td>cod. 99290061 &nbsp; &nbsp;</td><td>Standard media robusta &nbsp; &nbsp; &nbsp;</td>
<td>
<input type="text" name="codice3" maxlength="7" size="7" onClick="this.select();" value="no"></td>
</tr>
</table>
Pagina ordine finale:

codice che prende i dati
<?php
$quantita1=$_POST["codice1"];
$quantita2=$_POST["codice2"];
$quantita3=$_POST["codice3"];
?>

tabella già impostata
<table>
<tr>
<td><b><span class="descrizionetabella">Codice Articolo</span></b></td><td><b><span class="descrizionetabella">Quantit&agrave; </span></b></td>
</tr>
<tr>
<td>cod. 99290034 &nbsp; &nbsp;</td><td><?php echo "$quantita1";?></td>
</tr>
<tr>
<td>cod. 99290032 &nbsp; &nbsp;</td><td><?php echo "$quantita2";?></td>
</tr>
<tr>
<td>cod. 99290061 &nbsp; &nbsp;</td><td><?php echo "$quantita3";?></td>
<td>
</tr>
</table>

Me lo sono inventato io con quel poco di conoscenza che ho, non sarà magari il massimo....devo studiarmi bene i cicli tipo foreach....

Mancherebbe solo quel controllino li

Ciao grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
certo che il tuo metodo funzia, ma ha il difetto che se aggiungi/rimuovi un articolo devi aggiungere/rimuovere i $_POST,
inoltre se sono tanti fai uno script lungo una bibbia.
comunque per stampare solo gli articoli con le quantità e eliminare quelli senza, puoi modificare

PHP:
<?php 
if(isset($_POST['ORDINA'])){ 
    $ordinato=array(); 
    unset($_POST['ORDINA']); 
    $ordinato=$_POST; 
    foreach($ordinato['quantita'] as $chiave => $valore){ 
        //forzi il valore a intero (oppure lo forzi a float se ti servono i decimali)
		$valore= (int)$valore+0;
		//se in valore hai Quante? o una stringa alfabetica (int)$valore è = a 0
		//riulta un numero > di 0 solo se è un numero
		if($valore <=0){ 
            unset($ordinato['quantita'][$chiave]);//elimino dalla lista
        }else{
			echo "codice $chiave : quantità $valore <br>"; 
		}
    } 
} 
?>

sensa contare se un giorno tu volessi ricavare gli articoli da un db.
cerca di sfruttare la "dinamicità" di php anche se lo stai imparando.


per rispondere alla tua domanda.
$ chiave non è una variabile globale, ma la chiave dell'array associativo che ho costruito dando negli input il valore

valore=quantita[99290034] ecc...

nel costrutto foreach si puo leggere di un array sia la chiave che il valore che solo il valore.
in pratica da queel'input ho trasformato il post in un array bidimensionale, facendo così è come avessi scritto (es) mettendo o no le quantità
PHP:
$ordinato['quantita'][99290034]=37;
$ordinato['quantita'][99290036]=82;
$ordinato['quantita'][99290999]='Quante?';
//ecc...eccc...

col ciclo foreach poi interrogo la chiave e il valore ottenedo l'abbinamento tra codice e quantità
 
Ultima modifica:

simo10piu

Nuovo Utente
4 Mag 2009
24
0
0
...spettacolo borgo grande. Ma tu come sai queste cose? Cioè a me da fastidio che leggo il ciclo foreach, e non ci capisco un granchè, mi piace sì ottenere il risultato ma ancor di più vorrei capire quello che faccio.
Tu hai studiato a scuola?

Io ho da poco scoperto questa mia passione per la programmazione per il web ed un pochino alla volta sto imparando faccio qualche passo...

Ciao grazie mille per l'aiuto.
 

simo10piu

Nuovo Utente
4 Mag 2009
24
0
0
cavol......ma il amnuale è in inglese....e tu come lo sai l'inglese!!! :):):):) Scherzo. QUindi sei un autodidatta ed hai fatto tutto da te, complimenti! Pian piano arrivo anchio nè :):):) Grazie mille Borgo per l'aiuto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
shelbystudio cliente moroso: posso disattivare email e sito in attesa del pagamento? Leggi, Normative e Fisco 3
P come posso visualizzare l'nvr online IP Cam e Videosorveglianza 0
K Come posso usare un'immagine al posto di un bottone? HTML e CSS 2
P come posso fissare quella linea? HTML e CSS 3
camilia Come posso dividere le grandi dimensioni del file PST? Windows e Software 2
W [PHP] dirmi dove posso trovare.. Offerte e Richieste di Lavoro e/o Collaborazione 1
P [Photoshop CC] Come posso creare quest'effetto - cerchi concentrici Windows e Software 6
C [Photoshop] bordi tondi come posso fare per ottenerli come nell'immagine allegata Photoshop 2
W [PHP] Come posso testare la pagina direttamente su smartphone PHP 2
M [Photoshop] Come posso creare questo effetto ? Photoshop 2
W ragazzi, che posso dire un saluto a tutti. Presentati al Forum 3
D Come posso escludere una pagina dalle regole di htaccess? Web Server 0
I COME POSSO FARE PER ORGANIZZARE LA PRODUZIONE SU EBAY??? Discussioni Varie 2
napuleone da JS posso sapere se ho caricato jQuery jQuery 0
F Come posso vedere quanti likes ha una Pagina su Facebook in automatico? PHP 0
C Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati? PHP 1
F [PRESTAHOP] Come posso creare questa parte del sito? HTML e CSS 7
A posso mettere i miei contenuti di un sito usa in un sito in australia SEO e Posizionamento 2
filippino IP Vodafone Station: dove posso leggerlo? Reti LAN e Wireless 1
lucolo Non posso aprire discussioni Supporto Mr.Webmaster 4
A Form Dreamweaver & CO. ...non ce la posso fare! Webdesign e Grafica 6
M Non posso più modificare nulla sul mio sito wordpress WordPress 1
P Posso collegare un $_POST a una veriabile? Aiuto PHP 6
A Come posso passare uno o più parametri a seconda dell'id delle varie select Javascript 0
Trapano Dopo Ubuntu 64bit non posso più formattare!!!!! Hardware 6
G Nel mio caso posso usare javascript o devo avere un web server? Javascript 2
A GoGo Voglio creare un sito come ustream.tv, dove posso trovare uno script come ustream.tv? Discussioni Varie 0
L Come posso inviare al mio sito i guestbook,sondagggi,ecc creati su Mr.Webmaster ? Supporto Mr.Webmaster 11
G Usare clone per colorare ma senza sbavare, come posso procedere? Photoshop 2
P Come posso fare questi effetti di collegamento tra pagine di un sito web? Javascript 5
I come posso creare una pagina di inserimento con selezione di mensilità? PHP 1
V ciao colleghi (se posso permettermi) Presentati al Forum 4
D Come posso rendere obbligatorio un drop down menu? Javascript 12
max_400 Pagine pesanti - troppe immagini, come posso risolvere? HTML e CSS 6
A GoGo Inserire tooltip [era: vorei sapere come posso inserire ...] Javascript 8
StarFish [Prestashop] Dove posso trovare dei template gratuiti per Prestashop CMS (Content Management System) 2
R [problema] Inizializzare Oggetto Ajax posso dichiararlo e dopo fare la send? Ajax 1
P Quale smartphone posso usare per visualizzare internet sul pc? Smartphone e tablet 5
M Come posso ottimizzare il posizionamento su Google SEO e Posizionamento 1
D aiuto... modello .dwt perso come posso ricrearlo? HTML e CSS 0
G pagina html in inserzione ebay, come posso fare? HTML e CSS 0
G giochi on line per sito web, dove posso trovarne? Discussioni Varie 2
A Come posso realizzare una galleria come questa? Flash 3
G dove posso trovare un modello di disclaimer e di privacy? Leggi, Normative e Fisco 2
R Installare WordPress senza sovrascrivere index (era: Come posso fare a ... ?) WordPress 3
demoleus dove posso scaricarlo? Photoshop 4
G dove posso trovare i forum con le cartelle? HTML e CSS 1
C 2 Siti web in un unico database. Posso farlo? Database 2
G Come posso guadagnare col mio sito? Guadagnare col Sito 1
L Dove posso trovare pulsanti in flash? Flash 3

Discussioni simili