Inviare Valore di Option diverso dal "value"

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Buongiorno gente,
è il mio primo post che faccio, spero possiate aiutarmi perchè non riesco a venirci a capo, nemmeno facendo ricerche.
E' da pochi mesi che mi son cimentato nel php. Ora è arrivato il primo problema. Sto costruendo un sito amatoriale tra amici per il fantacalcio.
Il problema che ho riscontrato è che dovrei mandare dei dati al DB tramite un option e fin qua tutto ok, son riuscito nell'intento, peccato che il dato che invio non è quello che vorrei inviare. Io vorrei inviare il campo "$nome" ma lasciare in option come campo "value" quello attuale, in quanto dal javascript lui mi calcola una somma istantanea. E' possibile ciò?
Posto il codice:
PHP:
<?php
include ('header.php');
 $provasessione = $_SESSION['utente'];
 $controllorosa = mysql_query("SELECT * FROM squadra WHERE nomesquadra = '$provasessione' ");
 $controllorosa_i = mysql_num_rows($controllorosa);
 
 if ($controllorosa_i > 0) {
    
    echo 'Tutto OK!';

} else { 
    
    if (!isset($_POST['inviarosa'])) {
 $query="SELECT * FROM calciatore WHERE ruolo = 'POR' ";
 $risultati=mysql_query($query);
 
 $query2="SELECT * FROM calciatore WHERE ruolo = 'DIF' ";
 $risultati2=mysql_query($query2);
 ?>
 
 <script lang="javascript" type="text/javascript">
// <!CDATA[
//------------------------------------------------------
//restituisce la somma degli elementi passati come id
//alert( calcola_somma("Text1", "Text2") );
//alert( calcola_somma(["Text1", "Text2"]) );
//------------------------------------------------------
function calcola_somma()
{
    var s = 0;
    for(var i = 0; i < arguments.length; i++)
    {
        var n = null;
        var v = arguments[i];
        if( typeof(v) == "string" )
        {
            n = document.getElementById(v).value.replace(",", ".");
            s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
        }
        else if(v instanceof Array)
        {
            for(var i = 0; i < v.length; i++)
            {
                n = document.getElementById(v[i]).value.replace(",", ".");
                s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
            }
        }
    }
    return s;
}

function calcola()
{
    var somma = calcola_somma("Text1", "Text2");
    document.getElementById("div1").innerHTML = 500 - somma;
}

// ]]>
</script>

<div class="form">
<form method="post">
<label>Portiere:</label>
    <select id="Text1" onchange="calcola();" name="por1">
    <option disabled="disabled" selected="selected">Scegli il Primo Portiere</option>
    
    <?php
    while($rows = mysql_fetch_assoc($risultati)) {
        $nome = $rows['nome'];
        $fanta = $rows['fantamiliardi'];
         ?>
        
        <option value="<?php echo $fanta; ?>"><?php echo "$nome ($fanta)" ; ?></option>
        
<?php } ?>
</select>



<label>Portiere:</label>
    <select id="Text2" onchange="calcola();" name="dif1">
    <option disabled="disabled" selected="selected">Scegli il Difensore</option>
    
    <?php
    while($rows2 = mysql_fetch_assoc($risultati2)) {
        $nome2 = $rows2['nome'];
        $fanta2 = $rows2['fantamiliardi'];
         ?>
        
        <option value="<?php echo $fanta2; ?>"><?php echo "$nome2 ($fanta2)" ; ?></option>
        
<?php } ?>
</select><br />

Rimangono ancora: <div id="div1">500</div>
<input type="submit" value="Invia" name="inviarosa" />
</form>
</div>
<?php  


} else {
    
    //Controlla campi
    $por1 = mysql_real_escape_string($_POST["por1"]);
    $dif1 = mysql_real_escape_string($_POST["dif1"]);
    
    if ($por1 == "" || $dif1 == "") {
        
        echo "Devi Inserire Tutti I Campi";
        
    } else {
            
            mysql_query("INSERT INTO squadra (nomesquadra, por1, dif1) VALUES ('".$_SESSION['utente']."', '$por1', '$dif1' )");
            
            echo "Tutto Perfetto";
        }
        
    }
    
    }
?>
 

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao, modifica i campi in questo codice e fammi sapere se fa al caso tuo
Ciao
PHP:
<select name='regione'>
						<option value=''>Seleziona regione</option>";
						$query_regione = mysql_query("SELECT * FROM regioni ORDER BY descr_regione")
						or die("errore nella query_regione;".mysql_error());
						for($a = 0; $a < mysql_num_rows($query_regione); $a++)
							{
								$a_elenco_regione = mysql_fetch_assoc($query_regione);
								echo"
								<option value='".intval($a_elenco_regione['id_regione'])."'"; 
								if($id_regione == $a_elenco_regione['id_regione']) 
									{ 
										echo"selected"; 
									} 
								echo">"; 
								echo"$a_elenco_regione[descr_regione]"; 
								echo"</option>"; 
							}
						echo"
						</select>
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Devo esser sincero sincero mi trovo in difficoltà a cambiarla.. :dipser::dipser::dipser: :crying::crying::crying:
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Devo esser sincero sincero mi trovo in difficoltà a cambiarla.. :dipser::dipser::dipser: :crying::crying::crying:

PHP:
<select  name='port'>
<option value=''>Seleziona portiere</option>";
$query_portiere = mysql_query("SELECT * FROM portieri ORDER BY descr_portiere")
or die("errore nella query_portiere;".mysql_error());
for($a = 0; $a < mysql_num_rows($query_portiere); $a++)
	{
		$a_elenco_portieri = mysql_fetch_assoc($query_portiere);
		echo"
		<option value='".intval($a_elenco_portieri['id_portiere'])."'"; 
		if($id_portiere == $a_elenco_portieri['id_portiere']) 
			{ 
				echo"selected"; 
			} 
		echo">"; 
		echo"$a_elenco_portieri[descr_portiere]"; 
		echo"</option>"; 
	}
echo"
</select>
Prova così
Ciao
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Niente da fare minatore. Avevo provato come mi hai postato tu togliendo però ORDER BY descr_portiere e modificando il richiamo "SELECT * FROM portieri" in "SELECT * FROM squadra" ..Ho fatto come mi hai appena scritto con ORDER BY descr_portiere ma niente da fare.
O sono io che non so come procedere o forse non fa a caso mio il tuo aiuto!
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Niente da fare minatore. Avevo provato come mi hai postato tu togliendo però ORDER BY descr_portiere e modificando il richiamo "SELECT * FROM portieri" in "SELECT * FROM squadra" ..Ho fatto come mi hai appena scritto con ORDER BY descr_portiere ma niente da fare.
O sono io che non so come procedere o forse non fa a caso mio il tuo aiuto!

Posta il codice
Ciao
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Devo postare il codice con integrato il tuo aiuto? Xkè altrimenti c'è già ad inizio post!
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Ecco:

PHP:
<?php
include ('header.php');
 $provasessione = $_SESSION['utente'];
 $controllorosa = mysql_query("SELECT * FROM squadra WHERE nomesquadra = '$provasessione' ");
 $controllorosa_i = mysql_num_rows($controllorosa);
 
 if ($controllorosa_i > 0) {
    
    echo 'Tutto OK!';

} else { 
    
    if (!isset($_POST['inviarosa'])) {
 $query="SELECT * FROM calciatore WHERE ruolo = 'POR' ";
 $risultati=mysql_query($query);
 
 $query2="SELECT * FROM calciatore WHERE ruolo = 'DIF' ";
 $risultati2=mysql_query($query2);
 ?>
 
 <script lang="javascript" type="text/javascript">
// <!CDATA[
//------------------------------------------------------
//restituisce la somma degli elementi passati come id
//alert( calcola_somma("Text1", "Text2") );
//alert( calcola_somma(["Text1", "Text2"]) );
//------------------------------------------------------
function calcola_somma()
{
    var s = 0;
    for(var i = 0; i < arguments.length; i++)
    {
        var n = null;
        var v = arguments[i];
        if( typeof(v) == "string" )
        {
            n = document.getElementById(v).value.replace(",", ".");
            s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
        }
        else if(v instanceof Array)
        {
            for(var i = 0; i < v.length; i++)
            {
                n = document.getElementById(v[i]).value.replace(",", ".");
                s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
            }
        }
    }
    return s;
}

function calcola()
{
    var somma = calcola_somma("Text1", "Text2");
    document.getElementById("div1").innerHTML = 500 - somma;
}

// ]]>
</script>

<div class="form">
<form method="post">
<label>Portiere:</label>
    <select id="Text1" onchange="calcola();" name="por1">
    <option disabled="disabled" selected="selected">Scegli il Primo Portiere</option>
    <option value=''>Seleziona portiere</option>";
    
    <?php
        
      
$query_portiere = mysql_query("SELECT * FROM squadra ORDER BY descr_portiere")
or die("errore nella query_portiere;".mysql_error());
for($a = 0; $a < mysql_num_rows($query_portiere); $a++)
    {
        $a_elenco_portieri = mysql_fetch_assoc($query_portiere);
        echo"
        <option value='".intval($a_elenco_portieri['id_portiere'])."'"; 
        if($id_portiere == $a_elenco_portieri['id_portiere']) 
            { 
                echo"selected"; 
            } 
        echo">"; 
        echo"$a_elenco_portieri[descr_portiere]"; 
        echo"</option>"; 
    }
echo" "                                
        
 ?>
</select>



<label>Portiere:</label>
    <select id="Text2" onchange="calcola();" name="dif1">
    <option disabled="disabled" selected="selected">Scegli il Difensore</option>
    
    <?php
    while($rows2 = mysql_fetch_assoc($risultati2)) {
        $nome2 = $rows2['nome'];
        $fanta2 = $rows2['fantamiliardi'];
         ?>
        
        <option value="<?php echo $fanta2; ?>"><?php echo "$nome2 ($fanta2)" ; ?></option>
        
<?php } ?>
</select><br />

Rimangono ancora: <div id="div1">500</div>
<input type="submit" value="Invia" name="inviarosa" />
</form>
</div>
<?php  


} else {
    
    //Controlla campi
    $por1 = mysql_real_escape_string($_POST["por1"]);
    $dif1 = mysql_real_escape_string($_POST["dif1"]);
    
    if ($por1 == "" || $dif1 == "") {
        
        echo "Devi Inserire Tutti I Campi";
        
    } else {
            
            mysql_query("INSERT INTO squadra (nomesquadra, por1, dif1) VALUES ('".$_SESSION['utente']."', '$por1', '$dif1' )");
            
            echo "Tutto Perfetto";
        }
        
    }
    
    }
?>
 

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao, scusami ho letto meglio il post, ti spiego
con il codice che ti ho scritto, all'evento onchange ricarica la pagina mantenendo il nome da te scelto.
Mentre per il problema che hai tu, quando selezioni esempio un portiere tu riceverai come risultato un numero,per trasformarlo in nome devi fare una query su 2 tabelle, tipo
PHP:
// il tuo risultato 34
$query=mysql_query("select squadra.*, portieri.*
from squadra, portieri
where portieri.id_portiere = squadra.id_portiere
&& portieri.id_portiere = '34'")
a questo punto puoi ricavarti il nome del portiere
PHP:
$pippo = mysql_fetch_array($query)
echo"$pippo[campo tabella nome portiere]";
se ti da errore prova a mettere gli apici tra le parentesi quadre
Ciao, spero che funzioni
 

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao, ho fatto un casino, non ho capito bene il problema,
tu quando fai la insert vuoi nel db il nome del giocatore.
Scusami
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Lo proverò spero entro stasera, altrimenti domani mattino!
Ti ringrazio anticipatamente! Ti farò sapere quanto prima!

Ciao
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Appena rientrato da un matrimonio, ancora non ho provato il tuo secondo aiuto ma da quanto ho capito non mi risolve il problema in quanto mi hai scritto:

minatore ha scritto:
Ciao, ho fatto un casino, non ho capito bene il problema,
tu quando fai la insert vuoi nel db il nome del giocatore.
Scusami

Perfetto, questo è quello che io voglio :eek::eek::eek:
 

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao, prova così, ho fatto una tabella calciatori per provare
PHP:
?>
<label>Portiere:</label> 
<select id="Text1" onchange="calcola();" name="por1"> 
<option selected="selected">Scegli il Primo Portiere</option> 
 
<?php 
$query = mysql_query("SELECT * FROM calciatori WHERE ruolo = '1'"); 
while($ris = mysql_fetch_assoc($query)) 
	{ 
?> 
	<option value="<?php $ris['nome']; ?>"><?php echo "$ris[nome] ($ris[costo])" ; ?></option> 
	 
<?php } 

?> 
</select>
Ricorda tu riceverai come valore sempre quello che metterai nel value.
Comunque un consiglio prima di andare avanti fai una rivisitina al db, perchè non corretto passargli il nome, ma dovresti salvare l'id del calciatore.
Ciao
 

apus84

Nuovo Utente
2 Giu 2012
10
0
0
Così funziona come vorrei io però non mi calcola la somma instantanea perchè il value dell'option non è quanto costa il calciatore ma il nome del calciatore. Mi sa che devo fare tutt'altro. Devo andare a rileggere un pò di mysql e php :dipser: ..

Comunque grazie per il tuo aiuto minatore, appena trovo una soluzione ti farò sapere.
 
Discussioni simili
Autore Titolo Forum Risposte Data
L inviare a database sia valore di value che valore di altro attributo PHP 5
csi Inviare file jpg in locale alla stampante con php PHP 0
M Inviare un file su un server remoto con JavaScript Javascript 0
E Inviare variabile a PHP da ciclo in JS Javascript 0
M Inviare dati nel db dopo risposta alert PHP 0
L inviare i dati di un form ad un database PHP 6
D INVIARE PAGINA XHTML TRAMITE EMAIL HTML e CSS 1
O [PHP] inviare dati da form e script ajax PHP 0
D [HTML] Inviare un link contenente un' immagine HTML e CSS 4
M Inviare variabili da menu a tendina a pagina php con post PHP 6
I [PHP] inviare form con allegato tramite una mail PHP 1
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
A [PHP] Inviare mail con piu immagini allegate PHP 6
C non riesco a inviare la posta con account alice Posta Elettronica 1
F [Javascript] Inviare i campi di un form col metodo post Javascript 7
L [Javascript] aiuto non riesco a inviare in get dal server web locale su altervista con httpRequest Javascript 0
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
L 120 SMS Gratis da inviare in qualsiasi momento Vendere e Acquistare pubblicita' online 0
angelo85 Sito joomla che permetta agli utenti di inviare mail Joomla 2
H [PHP] Inviare dati PHP 3
E [PHP] inviare 2 form consecutivamente PHP 4
S PHP: inviare via email contenuto di una funzione PHP 4
M Come inviare due mail diverse con phpmailer PHP 6
A Creare da form un PDF da inviare come allegato. PHP 1
M Inviare mail con PHP tramite Mozilla PHP 3
M Inviare mail dopo due giorni lavorativi PHP 3
P Creare form e inviare via mail HTML e CSS 2
M Inviare mail con href PHP 2
I Inviare dati POST tramite curl PHP 0
danjde inviare dati testuali verso iframe PHP 5
max_400 Si possono inviare sms con php? PHP 3
S inviare the_title() in una mail tramite form html/php PHP 0
M inviare email con access MS Access 3
Shyson Inviare css con form email PHP 1
N inviare input dinamici senza ricaricare la pagina Javascript 4
N inviare dati post tramite redirect PHP 4
G Inviare un form HTML e CSS 9
F inviare una mail con php mailer PHP 3
L Inviare allegati decodificati PHP 1
N Inviare mail di conferma al cliente PHP 0
Z Inviare newsletter da sito realizzato con WordPress Email Marketing 6
Monital [risolto] Inviare un input radio assieme ad un link PHP 7
F E' possibile inviare un comando DOS con javascript o altro linguaggio?? Javascript 1
M link con dati estratti da un db e aggiungere a tali link variabili da inviare a nuova pagina PHP 2
pup3770 Suddividere e inviare pdf HTML e CSS 2
M come inviare 2 variabili con get PHP 7
ciccio1892 Select concatenate con Ajax inviare scelta utente tramite post insieme ad altri dati form PHP 3
E Inviare una mail automaticamente, da un account gmail PHP 1
U form mail per inviare tracciabilità corriere PHP 0
L consigli per inviare newsletter PHP 8

Discussioni simili