Poslao: 30 Jun 2015 17:21
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Pozdrav.
Imam više select option boksova u jednoj formi ali kad selektujem npr., treći, on mi poništi selektovanu vrednost drugog . Svaki select je bio onchange="this.form.submit();" pa sam za treči stavio onchange="myFunction()" , za njega dobijem vrednost ali u JS. Treba mi value JS variable u PHP session.
Kada napišem <script>
<![CDATA[
var x = '<?php $selected3; ?>';
]]>
</script> ne dobijem ništa
Evo forme i JS koda, hvala unapred
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<select name="vrsta_vozila" onchange="this.form.submit();">
<option value="0">Vrsta vozila</option>
<?php echo get_options($selected); ?>
</select><br/><br/>
<select name="godiste" onchange="this.form.submit();">
<option value="0">Godiste</option>
<?php echo get_options2($selected2); ?>
</select>
<br/><br/>
<select name="stepen" id="mySelect" onchange="myFunction()"> >
<option value="0">STEPEN</option>
<?php echo get_stepen($selected3); ?>
</select>
</form>
<script>
function myFunction() {
//var x = '<?php //echo $selected3; ?>';
var x = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "You selected: " + x;
}
</script>
Kako da ovaj var x pretvorim u PHP varijablu?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 30 Jun 2015 20:20
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Ajmo redom - to sto prvo parce koda ne radi nista je sasvim razumljivo, jer mu nisi rekao da uradi bilo sta. Jedan echo ispred $selected3 bi sasvim promenio situaciju.
Dalje - ova "papazjanija" sa izmesanim HTML-om i JS-om radi upravo ono sto si mu "rekao" - svaki put kad se promeni vrednost select box-a - posalji formu na server. Ona polja koja nemaju nista selektovano - ne salju nista.
Sto se tice "pretvaranja" - ne moras da ga "pretvaras", imas ih vec u $_POST superglobal promenljivoj.
Kad submitujes formu, svi elementi gde korisnik moze da unese nesto (input, select, textarea) se salju na server, a u PHP-u se nalaze u $_POST[imePolja] (odnosno ono sto je navedeno u okviru atributa name) - konkretno u tvom slucaju $_POST['vrsta_vozila'], $_POST['godiste'] i $_POST['stepen'].
Deo koji prilicno utice na funkcionalnost svega ovoga - a koji nedostaje - su get_options() metode.
|
|
|
|
Poslao: 30 Jun 2015 20:44
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Već sam probao sa echo da pozovem, a naravno da neće slati ništa ako nije selektovano. Tu imam sledeći problem, selektujem 2 dropdown-a, dobijem vrednosti, a onda kad selektujem treći, drugi se poništi.
Nije mi jasno gde već imam u superglobalnoj vrednost koju dobijam koroj JS , konkretno var x
Evo koda pa ako može pomoć
$selected = '';
function get_options($select) {
$vrsta_vozila = array('Putnicko' => '1', 'Motocikli' => '2', 'Teretna' => '3');
$options = '';
while(list($k,$v)=each($vrsta_vozila)) {
if($select==$v) {
$options.='<option value = "'.$v.'" selected> '.$k.'</option>';
}
else
{
$options.='<option value = "'.$v.'"> '.$k.'</option>';
}
}
return $options;
}
if(isset($_POST['vrsta_vozila'])) {
$_SESSION['vrsta_vozila'] = $_POST['vrsta_vozila'];
$selected = $_POST['vrsta_vozila'];
//echo $selected;
}
$selected2 = '';
function get_options2($select2) {
$godiste = array('1995' => '1245', '1996' => '1285', '1997' => '1295');
$options2 = '';
while(list($k,$v)=each($godiste)) {
if($select2==$v) {
$options2.='<option value = "'.$v.'" selected2> '.$k.'</option>';
}
else
{
$options2.='<option value = "'.$v.'"> '.$k.'</option>';
}
}
return $options2;
}
if(isset($_POST['godiste'])) {
$_SESSION['godiste'] = $_POST['godiste'];
$selected2 = $_POST['godiste'];
//echo $selected2;
}
$selected3 = '';
function get_stepen($select3) {
$stepen = array('1' => '0.85', '2' => '0.85', '3' => '0.9');
$options3 = '';
while(list($k,$v)=each($stepen)) {
if($select3==$v) {
$options3.='<option value = "'.$v.'" selected2> '.$k.'</option>';
}
else
{
$options3.='<option value = "'.$v.'"> '.$k.'</option>';
}
}
return $options3;
}
if(isset($_POST['stepen'])) {
$_SESSION['stepen'] = $_POST['stepen'];
$selected3 = $_SESSION['stepen'];
//echo $selected3;
}
|
|
|
|
Poslao: 01 Jul 2015 07:13
|
offline
- ShadowOTN
- Novi MyCity građanin
- Pridružio: 15 Jan 2015
- Poruke: 14
|
Citat:$options2.='<option value = "'.$v.'" selected2> '.$k.'</option>';
Citat:$options3.='<option value = "'.$v.'" selected2> '.$k.'</option>';
!?
edit:
Pogledaj i ovo:
phpro.org/tutorials/PHP-Security.html#2
|
|
|
|
Poslao: 01 Jul 2015 12:42
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
@ShadowOTN ,
mislio sam da je greška u selected2 , pa sam to već ispravio , nije problem u tome nego negde drugde.
A php self je samo u lokalu , dok pravim formu Hvala.
|
|
|
|
Poslao: 01 Jul 2015 14:44
|
offline
- ShadowOTN
- Novi MyCity građanin
- Pridružio: 15 Jan 2015
- Poruke: 14
|
Postavi nov, izmenjen kod.
gfactory ::A php self je samo u lokalu , dok pravim formu Hvala.
Tako često završi i na serveru .
|
|
|
|
Poslao: 01 Jul 2015 19:46
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
btw, formu submitujem na drugu stranu tako da nema propusta već sam postavio kod al evo opet.
Znači , ako stavim sva 3 selekta onchange submit, treći deselektuje drugi , a treći je sad onchange myFunction i očitava value kroz JS , samo što ne mogu taj value da očitam kroz PHP varijablu , što se vidi iz priloženog, varijabla je $selected3
$selected = '';
function get_options($select) {
$vrsta_vozila = array('Putnicko' => '1', 'Motocikli' => '2', 'Teretna' => '3');
$options = '';
while(list($k,$v)=each($vrsta_vozila)) {
if($select==$v) {
$options.='<option value = "'.$v.'" selected> '.$k.'</option>';
}
else
{
$options.='<option value = "'.$v.'"> '.$k.'</option>';
}
}
return $options;
}
if(isset($_POST['vrsta_vozila'])) {
$_SESSION['vrsta_vozila'] = $_POST['vrsta_vozila'];
$selected = $_POST['vrsta_vozila'];
//echo $selected;
}
$selected2 = '';
function get_options2($select2) {
$godiste = array('1995' => '1245', '1996' => '1285', '1997' => '1295');
$options2 = '';
while(list($k,$v)=each($godiste)) {
if($select2==$v) {
$options2.='<option value = "'.$v.'" selected2> '.$k.'</option>';
}
else
{
$options2.='<option value = "'.$v.'"> '.$k.'</option>';
}
}
return $options2;
}
if(isset($_POST['godiste'])) {
$_SESSION['godiste'] = $_POST['godiste'];
$selected2 = $_POST['godiste'];
//echo $selected2;
}
$selected3 = '';
function get_options3($select3) {
$stepen = array('1' => '0.85', '2' => '0.85', '3' => '0.9');
$options3 = '';
while(list($k,$v)=each($stepen)) {
if($select3==$v) {
$options3.='<option value = "'.$v.'" selected3> '.$k.'</option>';
}
else
{
$options3.='<option value = "'.$v.'"> '.$k.'</option>';
}
}
return $options3;
}
if(isset($_POST['stepen'])) {
$_SESSION['stepen'] = $_POST['stepen'];
$selected3 = $_SESSION['stepen'];
echo $selected3;
//echo $_SESSION['stepen'];
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body" >
<form action="" method="POST">
<select name="vrsta_vozila" onchange="this.form.submit();">
<option value="0">Vrsta vozila</option>
<?php echo get_options($selected); ?>
</select><br/><br/>
<select name="godiste" onchange="this.form.submit();">
<option value="0">Godiste</option>
<?php echo get_options2($selected2); ?>
</select>
<br/><br/>
<select name="stepen" id="mySelect" onchange="myFunction();">
<option value="0">STEPEN</option>
<?php echo get_options3($selected3); ?>
</select>
</form>
<br/><br/>
<p id="stepen"></p>
<script>
function myFunction() {
var x = '<?php echo $selected3; ?>';
var x = document.getElementById("mySelect").value;
document.getElementById("stepen").innerHTML = "You selected: " + x;
}
</script>
<script>
<![CDATA[
var x = '<?php echo $selected3; ?>';
]]>
</script>
<?php
if($selected == '3') {
echo 'Nosivost: <input type="text" name="nosivost"/>';
}
?>
<form action="data.php" method="POST">
Vrsta vozila<input type="text" name="vrsta_vozila" value="<?php echo $selected; ?>" /><br/><br/>
Godiste CENA<input type="text" name="godiste" value="<?php echo $selected2; ?>" /><br/><br/>
STEPEN<input type="text" name="stepen" value="<?php echo $selected3; ?>" /><br/><br/>
<input type="submit" name="submit" />
</form>
|
|
|
|
Poslao: 01 Jul 2015 20:52
|
offline
- ShadowOTN
- Novi MyCity građanin
- Pridružio: 15 Jan 2015
- Poruke: 14
|
ShadowOTN ::Citat:$options2.='<option value = "'.$v.'" selected2> '.$k.'</option>';
Citat:$options3.='<option value = "'.$v.'" selected2> '.$k.'</option>';
!?
Mislio sam da ćeš razumeti ovo. U ukviru option html elementa ne postoje atributi selected2 i selected3 već samo selected:
developer.mozilla.org/en-US/docs/Web/HTML/Element/option#attr-selected
|
|
|
|
Poslao: 01 Jul 2015 21:18
|
offline
- gfactory
- Super građanin
- Pridružio: 26 Okt 2007
- Poruke: 1064
- Gde živiš: u Apache
|
Ok, hvala , primio k znanju za select ... rešio sam multiple dropdown na drugi način, ostao je samo jedan problem,
na istoj stranici selektovanjem više dropdown-a dobijem vrednosti koje sabiram, množim kao neki total i to je ok ali ne znam kako taj total poslati kroz sesiju posle submita, jer se sabiranje ne dešava pre submita , primer
$total = $cena_polise * $stepen;
$total2 = $total * $porez;
$_SESSION['total3'] = $total + $total2;
echo "Ukupna cena polise: ".$_SESSION['total3'];
Znači , treba mi TOTAL3 da pošaljem kroz submit, ako me razumeš
|
|
|
|
Poslao: 01 Jul 2015 23:32
|
offline
- ShadowOTN
- Novi MyCity građanin
- Pridružio: 15 Jan 2015
- Poruke: 14
|
Da li si startovao sesiju na početku dokumenta?
php.net/manual/en/function.session-start.php
Za prenos podataka između stranica možeš koristiti i input hidden elemenat.
developer.mozilla.org/en-US/docs/Web/HTML/Element/input
Citat:hidden: A control that is not displayed, but whose value is submitted to the server.
|
|
|
|