Autor Zpráva
Cakewalk
Profil
Dobrý den,
mám formulář, kde na začátku volím tlačítkem, kam se má věc vkládat, ale potřeboval bych, aby se po kliku volby také upravil formulář. Vypadá to jednoduše, ale je to složitější. Potřebuji pouze skrýt určitá pole, ale musí na pozadí stále zůstat.
Konkrétní příklad:

Na začátku volba: zboží se slevou, zboží beze slevy

zboží se slevou má pole cena a také po zaškrtnutí vyskočí pole původní cena

zboží beze slevy má pouze pole cena, ale na pozadí musí zůstat zaškrtnuté pole původní cena a obsah pole musí být kopií pole cena, ale to vše skryté

Má někdo nějaký nápad? Díky Honza
_es
Profil
Cakewalk:
No a s čím konkrétnym máš problém?
Úloha sa dá rozdeliť na jednotlivé podúlohy, ktorých riešenie si môžeš nájsť aj sám.
Cakewalk
Profil
Díky za rychlou reakci. Problém bude asi mnohem jednodušší. Ten formulář mi fungoval bez problémů a pole se volily pomocí podmínek if. Musel jsem ale vyměnit editor textu z InnovaEditoru na TinyEditor a přestal mi fungovat onclick při volbě na začátku formuláře.
Konkrétně když kliknu na volbu, tak se nic nestane. Zboží je sice zařazené správně, ale formulář se po kliku nepředvyplní. Už jsem to zkoušel i s jiným editorem, ale prostě jak z toho odstraním InnovaEditor všechno se rozpadne.
Už jsem hledal i závislosti scriptů, zda se z Innovy něco nenačítá, ale nic jsem nenašel.
Cakewalk
Profil
Konkrétní příklad:

<td width="150" align="right"><input type="radio" name="list_in" value="store"  <? echo ($item_details['list_in'] == 'store') ? 'checked' : ''; ?><? echo ($one_step_listing) ? 'onClick="window.location.href (http://www.adresa.cz, \'\');" ' : '';?>></td>


Tohle s TinyEditorem nejede s Innovou ano.
_es
Profil
Cakewalk:
Dal si dotaz do sekcie JS, tak z toho vyseparuj problém v JS, bez „znečistenia“ PHP kódom.
Skontroloval si si vôbec, čo ti ten PHP kód generuje? Atribút onclick je na prvý pohľad chybný a to hneď z niekoľkých dôvodov.
Darker
Profil
onClick="window.location.href (\'http://www.adresa.cz, \');" 

Pro začátek přesuň ten apostrof
Cakewalk
Profil
Díky za reakce.
Ať máte přesnou představu, tady je kód, u kterého se vyskytla chyba. To předchozí byl jen příklad.


<td width="150" align="right">
<input type="radio" name="list_in" value="store" 
<? echo ($item_details['list_in'] == 'store') ? 'checked' : ''; ?>
<? echo ($one_step_listing) ? 'onclick = "submit_form(ad_create_form, \'\');"' : '';?>>
</td>



Tento kód funguje bez problémů do té doby, než vyměním editor popisku zboží. InnovaEditor za TinyMCE nebo jiný. Hledal jsme nějakou provázanost kódů, ale nic jsem nenašel. I když nechám zavedené JavaScripty InnovaEditoru a jen změním volání pole na TinyMCE, výše uvedený kód nejede.
Přesně nejede to, že se stránka po kliknutí na volbu nereloadne respektive negeneruje formulář.
Díky za jakoukoliv radu.
_es
Profil
Cakewalk:
Z takýchto výsekov kódu ti asi nikto nič nevyveští. Ako vyzerá funkcia submit_form, premenná ad_create_form, atď., atď... Dodaj „živú“ ukážku.
Cakewalk
Profil
Jojo, teď mi to došlo, že bych to měl uvést, díky za reakci.

Submit form:

function submit_form (form_name, file_type) {
form_name.box_submit.value  = "1";
form_name.file_upload_type.value = file_type;
<? echo ($one_step_listing)  ? 'form_name.onsubmit();' : ' '; ?>
form_name.submit( );


K nahlédnutí je celý formulář na

http://aukce2.allelektro.cz
jméno: host
heslo: hostujici

Zadat prodat a formulář je na světě.
Darker
Profil
Prvně bych nahradil ad_create_form za this.form, pokud je radio součástí dormuláře, který mění. Tím se zbavíme globální proměnné navíc.

Funkce submit_form v ukázce teď vypadá takhle:
	 	function submit_form(form_name, file_type) {
	 	   form_name.onsubmit();	 	 	 	 
	 	  
	 	 		} 	

jelikož ji definuješ dvakrát po sobě, a tohle je druhá definice v pořadí.
Navíc pořád nevím které pole chceš měnit.
Edit:
Oprava, submit_form je definovaná třikrát po sobě a poslední definice vypadá takto:
function submit_form(form_name, file_type) {
	form_name.onsubmit();	}

Máš v tom binec kamaráde.
_es
Profil
Cakewalk:
Funkciu submit_form (re)definuješ celkovo tri krát v rôznych skriptoch.
Voláš funkciu priradenú do vlastnosti onsubmit formulára, no žiadna funkcia k tej vlastnosti priradená nie je.
Obávam sa, že na viac rád je ten kód príliš chaoticko neprehľadno zložitý.
Hlavné je sa v skriptoch vyznať, nie tam bezhlavo nahádzať dvojciferné množstvo externých skriptov.
Cakewalk
Profil
Díky všem za podnětné poznámky. Opravu už řeším s autorem kódu, tak snad najdeme řešení.
Nicméně tento mod fungoval naprosto bezproblémově, i když vám připadá chybný. Přestal fungovat až po výměně editoru textu, který jsme musel vyměni z důvodu mizení textu popisku zboží při uložení.
Hledám spíš důvod, přoč to přestalo fungovat.
Cakewalk
Profil
Díky všem, problém vyřešen. Problém jsme nalezli díky vašim poznámkám. Ještě jednou díky.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0