[RISOLTO]js function per impostare minimo totale

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
Ciao,
premetto che sono unanullità in php e js e ringrazio già anticipatamente chi avrà il buon cuore e la pazienza di aiutarmi...dunque ho una funzione che controlla che i campi del form siano corretti (nome, cognome, tel etc.).
Vorrei aggiungere una funzione che faccia apparire un alert qualora il totale dell'ordine sia minore di 24.
Come posso fare?
Ecco il js:

PHP:
function ValideCommande()
{	//Nom
	if (document.FCommadeValider.tnom.value < 1)
	{
		alert("Vous devez indiquer votre nom!");
		document.FCommadeValider.tnom.focus();
		return false;			
	}
  //Prenom
	if (document.FCommadeValider.tprenom.value < 1)
	{
		alert("Vous devez indiquer votre prenom!");
		document.FCommadeValider.tprenom.focus();
		return false;			
	}
	
	//Téléphone
	if (document.FCommadeValider.ttel.value.length < 10)
	{
		alert("Format du numéro incorrecte!");
		document.FCommadeValider.ttel.focus();
		return false;			
	}
	
	//Téléphone correct
	//var reg = /^0[2,7][0-9]{8,10}/;
	//if (reg.exec(document.FCommadeValider.ttel.value) == null)
	if (document.FCommadeValider.ttel.value < 1)
	{
		alert("Format du numéro incorrecte!");
		document.FCommadeValider.ttel.focus();		
		return false;
	}
	//Rue
	if (document.FCommadeValider.tvia.value < 1)
	{
		alert("Vous devez indiquer votre rue!");
		document.FCommadeValider.tvia.focus();
		return false;			
	}
   //NIP
	if (document.FCommadeValider.tcode.value < 1)
	{
		alert("Vous devez indiquer votre NIP!");
		document.FCommadeValider.tcode.focus();
		return false;			
	}
  
   //Ville
	if (document.FCommadeValider.tville.value < 1)
	{
		alert("Vous devez indiquer votre ville!");
		document.FCommadeValider.tville.focus();
		return false;			
	}
	//Si on rentre un email on vérifie
	if (document.FCommadeValider.tmail.value.length > 0)
	{
		//Email correct
		var reg = /^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+/;
		if (reg.exec(document.FCommadeValider.tmail.value)== null)
		{
			alert("E-mail incorecte!");
			document.FCommadeValider.tmail.focus();		
			return false;
		}
	}
	else
	{
			alert("E-mail incorecte!");
			document.FCommadeValider.tmail.focus();		
			return false;	
	}
	

	document.FCommadeValider.submit();
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, il totale su cosa lo devi calcolare? hai un campo con il totale?
in questo caso
Codice:
if (parseInt(document.FCommadeValider.totale.value) < 24)
    {
         alert(""); 
    }
 

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
Grazie mille per la risposta...Ho provato ma non funziona.
Il campo totale è nella pagina php dove c'è il form.
Il prezzo (totale) è la somma degli ordini:
$total = $total + $soustot;
Poi per inviare l'ordine si mette nome indirizzo etc, ma dovrei fare in modo che se il prezzo è minore di 24 ci sia un alert...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ho provato cosi e funziona
HTML:
<script type="text/javascript">
    function ValideCommande() {
        if (parseInt(document.FCommadeValider.totale.value) < 24)
        {
            alert("minore di 24"); 
            return false;
        }

        document.FCommadeValider.submit();
    }  
</script>
<?php
$total = 23;
?>
<form name="FCommadeValider">
    <input type="text" name="totale" value="<?php echo $total ?>"/>
    <input type="button" value="Convalida" onclick="ValideCommande()"/>
</form>
 

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
Ciao,
ancora grazie per la risposta...
Ho provato, ma probabilmente sbaglio qualcosa nel richiamo della funzione.
Ti mostro il php della pagina del carrello:
PHP:
<?php
echo('<script>');
echo('$(document).ready(function(){');
echo('var d = new Date();');
echo('$("#theurem").val(d.getMinutes() + d.getTime());');
echo('$("#theureh").val(d.getHours());');
echo('});');
echo('</script>');
*/ 
echo '<h1>Votre panier</h1><br />';

//On prend les heures et on ajoute 2min de delai
$heure = @split(':', date('H:i', mktime(date('H'), date('i') + 2, date('s'), date('m'), date('d'), date('Y')))); 

//Affichage de la commande  
if (isset($_SESSION["commande"]["prod"]))
{
	echo '<div class="panier"><table class="panier" border="1" cell-padding="5" cell-spacing="5">
			  <caption>Commande</caption><br />
			  <tr>
				 <th class="panier">Produit</th>
				 <th class="panier">Prix</th>
				 <th class="panier">Quantit&eacute;</th>
				 <th class="panier">Sous total</th>
         <th class="panier">Action</th>
			  </tr>';
	$total = 10;                                       
	$cles = array_keys($_SESSION["commande"]["prod"]);	
	foreach($cles as $i)
	{
		if (array_key_exists($i, $_SESSION["commande"]["prod"]))
		{
			$_SESSION["commande"]["prix"][$i] = str_replace(",", ".", $_SESSION["commande"]["prix"][$i]);
			$soustot = (float)$_SESSION["commande"]["prix"][$i] * (float)$_SESSION["commande"]["quantite"][$i];
			
		  
			
			echo '<tr>
				  <td class="panier">'.stripslashes($_SESSION["commande"]["prod"][$i]).'</td>
				  <td class="panier">'.$_SESSION["commande"]["prix"][$i].' CHF</td>
				  <td class="panier">
				  	<form name="FQuant'.$i.'" method="post" action="index.php?page=panier">
				  	 <input type="text" name="tquant" onkeydown="javascript:chiffres(event);" maxlength="2" value="'.$_SESSION["commande"]["quantite"][$i].'" size="1" />
					   <input type="hidden" name="actu" value="'.$i.'" /> 
					</form>   
				  </td>
				  <td>'.number_format($soustot, 2, ',', ' ').' CHF</td>
          <td class="panier"><a href="index.php?page=panier&sup='.$i.'"><img src="images/design/meno.gif" alt="Supprimer" border="0"/></a> 
          <a href="#" onclick="javascript:document.FQuant'.$i.'.submit();"><img src="images/design/plus.gif" alt="Actualiser" border="0"/></a></td>
          </tr>
          ';
			$total = $total + $soustot;
		}
	}
	echo '<tr>
          <td class="panier">FRAIS DE PORT</td>
          <td class="panier">&nbsp;</td>
          <td class="panier">&nbsp;</td>
          <td class="panier">10.00 CHF</td>
          </tr>
       	</table><br />
			<div class="tot">
			Total : '.number_format($total, 2, ',', ' ').' CHF&nbsp;&nbsp;&nbsp;
			</div>';
	
	if (count($_SESSION["commande"]["prod"]) > 0)
		echo '<p><br />&nbsp;<a class="link" href="index.php?page=commandes">CONTINUER MES ACHATS</a><br /><br /></p>
    <p class="PCentrer"><span>Valider la commande</span></p>
    <div class="modulo">
          <form name="FCommadeValider" method="post" action="index.php?page=validercommande">
							<div class="moduloSx">
								Nom * :<br /> 
                Pr&eacute;nom * :<br /> 
								T&eacute;l&eacute;phone * :<br />
								Email * :<br />
                <u>Adresse de livraison</u> :<br />
                Rue *:<br />
                NIP *:<br />
                Ville *:<br />
								Remarques : 
							</div>
							<div class="moduloDx">
								<input type="text" name="tnom" />&nbsp;&nbsp;<br />
                <input type="text" name="tprenom" />&nbsp;&nbsp;<br />
								<input type="text" name="ttel" />&nbsp;&nbsp;<br />
								<input type="text" name="tmail" />&nbsp;&nbsp;<br /><br />
                <input type="text" name="tvia"  /> <br />
                <input type="text" name="tcode"  /> <br />
                <input type="text" name="tville" /> <br />
								<textarea name="tremarques" cols="30" rows="5"></textarea> <br />
								<p class="ex">* Champs obligatoires</p>
						 </div> 
					</form> 
			   <br /> 
        <p class="ok"><a href="#" onclick="javascript:ValideCommande();"><img src="images/design/okp.png" alt="Valider la commande" /> Valider</a></p><br />
				<p class="carte">Cartes accept&eacute;es :&nbsp;<img src="images/design/paypal.jpg" align="top" alt="carte" title="cartes accept&eacute;es" border="0" /></p>	
</div></div>';
}	  
else
	echo '<div class="vuoto">Votre panier est vide.</div>';

 

?>
 

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
Ciao,
ho provato ancora con il tuo metodo, quando premo il pulsante convalida non succede nulla. Poi la variabile $total è già uguale a 10 e non posso metterla uguale a 23 come mi hai indicato tu.
Potresti aiutarmi per favore? Ti ringrazio molto e scusa ancora la mia incapacità...
Questo è il form, come vedi non è qui la variabile $total:
PHP:
<form name="FCommadeValider" method="post" action="index.php?page=validercommande">
							<div class="moduloSx">
								Nom * :<br /> 
                Pr&eacute;nom * :<br /> 
								T&eacute;l&eacute;phone * :<br />
								Email * :<br />
                <u>Adresse de livraison</u> :<br />
                Rue *:<br />
                NIP *:<br />
                Ville *:<br />
								Remarques : 
							</div>
							<div class="moduloDx">
								<input type="text" name="tnom" />&nbsp;&nbsp;<br />
                <input type="text" name="tprenom" />&nbsp;&nbsp;<br />
								<input type="text" name="ttel" />&nbsp;&nbsp;<br />
								<input type="text" name="tmail" />&nbsp;&nbsp;<br /><br />
                <input type="text" name="tvia"  /> <br />
                <input type="text" name="tcode"  /> <br />
                <input type="text" name="tville" /> <br />
								<textarea name="tremarques" cols="30" rows="5"></textarea> <br />
								<p class="ex">* Champs obligatoires</p>
						 </div> 
					</form>

La variabile è impostata prima:
$total = 10; (a 10 si aggiunge il sub-totale a seconda dell'ordine che si fa, ma non posso metterlo a 23...)
Poi ho una pagina function.js dove ci sono le funzioni:
HTML:
function ValideCommande()
{	//Nom
	if (document.FCommadeValider.tnom.value < 1)
	{
		alert("Vous devez indiquer votre nom!");
		document.FCommadeValider.tnom.focus();
		return false;			
	}
  //Prenom
	if (document.FCommadeValider.tprenom.value < 1)
	{
		alert("Vous devez indiquer votre prenom!");
		document.FCommadeValider.tprenom.focus();
		return false;			
	}
	
	//Téléphone
	if (document.FCommadeValider.ttel.value.length < 10)
	{
		alert("Format du numéro incorrecte!");
		document.FCommadeValider.ttel.focus();
		return false;			
	}
	
	//Téléphone correct
	//var reg = /^0[2,7][0-9]{8,10}/;
	//if (reg.exec(document.FCommadeValider.ttel.value) == null)
	if (document.FCommadeValider.ttel.value < 1)
	{
		alert("Format du numéro incorrecte!");
		document.FCommadeValider.ttel.focus();		
		return false;
	}
	//Rue
	if (document.FCommadeValider.tvia.value < 1)
	{
		alert("Vous devez indiquer votre rue!");
		document.FCommadeValider.tvia.focus();
		return false;			
	}
   //NIP
	if (document.FCommadeValider.tcode.value < 1)
	{
		alert("Vous devez indiquer votre NIP!");
		document.FCommadeValider.tcode.focus();
		return false;			
	}
  
   //Ville
	if (document.FCommadeValider.tville.value < 1)
	{
		alert("Vous devez indiquer votre ville!");
		document.FCommadeValider.tville.focus();
		return false;			
	}
	//Si on rentre un email on vérifie
	if (document.FCommadeValider.tmail.value.length > 0)
	{
		//Email correct
		var reg = /^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+/;
		if (reg.exec(document.FCommadeValider.tmail.value)== null)
		{
			alert("E-mail incorecte!");
			document.FCommadeValider.tmail.focus();		
			return false;
		}
	}
	else
	{
			alert("E-mail incorecte!");
			document.FCommadeValider.tmail.focus();		
			return false;	
	}
  
     

	document.FCommadeValider.submit();
}

Sento già fischiarmi le orecchie per gli insulti che mi stai mandando, ma non so proprio come fare...scusa e grazie!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Nessun insulto ma non capisco
se nel form non hai ancora il totale non puoi fare il controllo sul totale
dovrai farlo quando riesci a calcolarlo e se lo calcoli nella pagina php richiamata ti conviene farlo li in php
 

Fabrizio Villa

Utente Attivo
19 Gen 2013
131
0
16
Ciao, grazie ancora per la tua risposta!
Nella stessa pagina c'è il riepilogo dell'ordine con la somma dei "prezzi dei prodotti" + "totale (fissato già a 10 perché ci sono le spese di spedizione).
Quindi ho l'elenco con il totale già calcolato.
In seguito, nella stessa pagina, si deve compilare un form con nome cognome telefono etc. Con il pulsante ok mando una mail con tutti i dati del form e con il totale. Sarebbe possibile fare in modo che ci sia un alert quando il valore di questo totale sia < di 24?
Sicuramente il tuo metodo funziona, ma non so bene dove infilarlo..
Spero di essermi spiegato bene e scusa ancora la rottura...
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [RISOLTO][PHP] Call to a member function num_rows() on a non-object PHP 9
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15

Discussioni simili