JS vs PHP – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

JS vs PHP – JavaScript, AJAX, jQuery – Fórum – Programujte.comJS vs PHP – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Koja
~ Anonymní uživatel
37 příspěvků
26. 2. 2010   #1
-
0
-

Zdravim,

mam dalsi problem.. v JS automaticky vyplnuji Option v Select ve formulari podle predchoziho vyberu v jinem Selectu..
Po vybrani nejake hodnoty z ciselniku bych s ni potreboval dal pracovat v PHP, jenze mi to porad vypisuje, ze je prazdna. Napr.:

Mam



<select name="state" id="state" size="1">
<option value="'CZ">CZ</option>
<option value="'SK">SK</option>
<option value="'UK">UK</option>
<option value="'D">D</option>
</select>

Po vyberu "CZ" se mi vytvori


<select name="city" id="city" size="1">
<option value="'Brno">Brno</option>
<option value="'Znojmo">Znojmo</option>
<option value="'Pribram">Pribram</option>
<option value="'Olomouc">Olomouc</option>
</select>


Uzivatel vybere napr. "Olomouc" a ja s tim potrebuju dal pracovat v promenne $city, jenze ta se mi vypisuje jako prazdna .. Nevite nekdo, co s tim? :/

Nahlásit jako SPAM
IP: 81.19.4.–
Koja
~ Anonymní uživatel
37 příspěvků
26. 2. 2010   #2
-
0
-

Oprava...
Nevypisuje se jako prazdna, ale obsahuje prvni polozku z toho seznamu. Coz znamena v tomhle pripade, ze at vyberu jakekoli mesto, tak se mi porad byde $city vypisovat jako Brno ... :/

Nahlásit jako SPAM
IP: 81.19.4.–
amertak0
Návštěvník
26. 2. 2010   #3
-
0
-

tak musíš si ji zebrat po odeslání, to jest teda $_POST["city"] (popř. GET) a taky nevím, co dělají ve value ty jednoduché apostrofy, když už tam máš dvojité.

Nahlásit jako SPAM
IP: 80.251.245.–
Koja
~ Anonymní uživatel
37 příspěvků
26. 2. 2010   #4
-
0
-

Samozrejme to tam nepatri, je to preklep..

Muzes mi vic rozepsat, jak to myslis? Kde mam co napsat, abych s tim mohl dal pracovat?

Nahlásit jako SPAM
IP: 81.19.4.–
KIIV
~ Moderátor
+43
God of flame
26. 2. 2010   #5
-
0
-

To Koja : mysli to takhle: z hlediska bezpecnosti je uz cele leta defaultne zakazane pouzivat takzvane "register_globals" tj. to tvoje city se uz snad nikde nebude promenadovat ve scriptu jako $city
pokud tedy neni (a taky nebude) zapnuto, tak se podle metody odesilani (method parametr u form elementu) bude city vyskytovat bud v $_GET['city'] nebo $_POST['city']

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Koja
~ Anonymní uživatel
37 příspěvků
17. 3. 2010   #6
-
0
-

To KIIV : tak $_POST['locid'] obsahuje "Brno"/prvni polozku ze seznamu, at vyberu cokoli a $_GET['locid'] je prazdna.. Nejaky dalsi napad? :/

Nahlásit jako SPAM
IP: 81.19.4.–
Kobi
~ Moderátor
+1
Věrný člen
17. 3. 2010   #7
-
0
-

Jeden formulář nemůže být POST i GET... Hoď sem jak vypadá tvůj současný kód toho formuláře i php souboru, který ho zpracovává.

Nahlásit jako SPAM
IP: 89.102.5.–
Koja
~ Anonymní uživatel
37 příspěvků
17. 3. 2010   #8
-
0
-

Form se 2 selecty..



<form name="searchfilter" action="index.php?page=7" method="post" onSubmit="load();">
<table border="0" cellspacing="2" width="100%">
<tr>
<td>
<select name="stid" class="searchbox2" id="stid2" size="1" onchange='loadChildBox()'>
<option value="">Vsechno</option>
<option value="6">Banskobystricky</option>
<option value="1">Bratislavsky</option>
<option value="7">Presovsky</option>
<option value="3">Trenciansky</option>
<option value="5">Zilinsky</option>
</select>
</td>
</tr>
<tr>
<td>
<select name="locid" class="searchbox2" id="locid2" size="1">
</select>
</td>
</tr>
<tr>
</table>
</from>


A JS, ktery naplnuje automaticky druhy select, podle vyberu v prvnim
var comboBoxChildValues = new Array();

comboBoxChildValues[""] = new Array("Všetky lokality");
comboBoxChildValues["6"] = new Array(
"Všetky lokality",
"Krupina");
comboBoxChildValues["1"] = new Array(
"Všetky lokality",
"Bratislava - Staré mìsto");
comboBoxChildValues["7"] = new Array(
"Všetky lokality",
"Prešov");
comboBoxChildValues["3"] = new Array(
"Všetky lokality",
"Ilava",
"Trenèín",
"Púchov");
comboBoxChildValues["5"] = new Array(
"Všetky lokality",
"Bytèa",
"Èadca",
"Dolný Kubín",
"Kysucké Nové Mìsto",
"Liptovský Mikuláš",
"Martin",
"Žilina");
/* Main function */
function loadChildBox() {
var stid = document.getElementById('stid2');
var locid = document.getElementById('locid2');

var selectedIndex = stid.selectedIndex;
var selectedValue = stid.options[selectedIndex].value;

locid.options.length = 0;

for(i = 0; i < comboBoxChildValues[selectedValue].length; i++) {
locid.options[i] = new Option(comboBoxChildValues[selectedValue][i], comboBoxChildValues[selectedValue][i]);
}
}

function load() {
var locid = document.getElementById('locid2');
var stid = document.getElementById('stid2');
var selectedIndex = stid.selectedIndex;
var selectedValue = stid.options[selectedIndex].value;
var aktualni = document.getElementById('locid2').selectedIndex;
var fromCookie = document.cookie;

var rozdeleny = fromCookie.split('+');

locid.options.length = 0;

for(i = 0; i < comboBoxChildValues[selectedValue].length; i++) {
if ((selectedValue == rozdeleny[0]) && (i == rozdeleny[1]))
{
locid.options[i] = new Option(comboBoxChildValues[selectedValue][i], comboBoxChildValues[selectedValue][i]);
locid.options[i].selected = true;
locid.options[i].focus();
} else {
locid.options[i] = new Option(comboBoxChildValues[selectedValue][i], comboBoxChildValues[selectedValue][i]);
locid.options[i].focus();
}
}

// selectedValue => cislo kraje
// aktualni => cislo okresu
var text = selectedValue;
text += "+";
text += aktualni;

document.cookie = text;

}


A ja po odeslani formulare potrebuju na dalsi strance pracovat s $locid

Nahlásit jako SPAM
IP: 81.19.4.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý