Vyvoláním change(function() vybrat aktivní inputy – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vyvoláním change(function() vybrat aktivní inputy – JavaScript, AJAX, jQuery – Fórum – Programujte.comVyvoláním change(function() vybrat aktivní inputy – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Milousek0
Duch
5. 7. 2013   #1
-
0
-

Zdravím všechny co mají ajax v malíčku  ;)

Řeším problém jak ajaxem vybrat aktivní checkboxy výběrem z databáze po vyvolání onchange v selectu.

Zde je příklad:


<select id="selected_carrier" name="selected_carrier" onchange="">
       {foreach $Carriers as $carrier}
		<option value="{$carrier['id_carrier']}" {if $selected_carrier == $carrier['id_carrier']}selected="selected"{/if}>{$carrier['name']}</option>
	{/foreach}
</select>

<table class="group_table">
{assign var=nazev value=1}
	{foreach $zasilky as $z}
		<td style="width:3%;">{$z['code']}</td>
                <td style="width:25%;">{$z['name']}</td>
                <td style="width:3%;">
			<input type="checkbox" name="{$selected_carrier}_typ_zasilky_{$z['code']}" value="{$z['code']}" {if in_array($z['code'],$prirazene_zasilky) == true}checked="checked"{/if} />
		</td>
		{if $nazev == 1 || $nazev == 2}
            	<td style="width:4%;">
		</td>
		{/if}
		{if $nazev == 3}
			</tr>
            		<tr>
			{assign var=nazev value=0}
		{/if}
		{assign var=nazev value=$nazev+1}
            {foreachelse}
		</tr>
	{/foreach}
</table>

S ajaxem nejsem zatím moc velký kamarád  tak budu moc rád  za jakoukoliv  pomoc  ;)

Nahlásit jako SPAM
IP: 213.155.247.–
Reklama
Reklama
prdelnatý anděl
~ Anonymní uživatel
33 příspěvků
10. 8. 2013   #2
-
0
-

Ahoj. Pokud tomu rozumím správně, tak musíš načíst stránku bez vybraných checkboxů a samotné vybrání udělat v JavaScriptu. Ty checkboxy, které se mají na událost vybrat, si (v PHP) dynamicky vypíšeš do pole (už v JS, podle IDček, předpokládám) a v JS si dopiš událost, která toto pole projde a odpovídajícím prvkům nastaví vlastnost checked.

Nahlásit jako SPAM
IP: 213.151.77.–
Milousek0
Duch
12. 8. 2013   #3
-
0
-

Ahoj,

bohužel jsem javascriptový analfabet, nemáš zájem o spolupráci?  Písni mi když tak na mail milousek70@seznam.cz, odměna samozřejmostí.

Předem díky

Nahlásit jako SPAM
IP: 213.155.247.–
peter
~ Anonymní uživatel
2551 příspěvků
13. 8. 2013   #4
-
0
-

Mozna si pletes forum s pracuj pro mne zadarmo. Zkus hledat googlem, udelat vlastni program a pak resit nasledne problemky. Vyjimecne mas stesti, ze mam dobrou naladu, tak ti usetrim trocha googlovani a napovim neco kodu. Nic, co bys neumel udelat v php, v js je to uplne stejne, jen se to trocha jinak pise.

<form>
<input type="checkbox" name="a"/>
<input type="checkbox" name="b"/>
<input type="checkbox" name="c"/>
<input type="checkbox" name="d"/>
<input type="checkbox" name="e"/>
</form>
<script>
var pole,i;
pole = {a:true, b:false, c:false, d:true, e:true};
for (i in pole)
	{document.forms[0][i].checked = pole[i];}
</script>
Nahlásit jako SPAM
IP: 193.84.207.–
Milousek0
Duch
7. 9. 2013   #5
-
0
-

Tak jsem se nakonec se všemi radami prokousal k cíli  ;)       Vyřešil jsem to pěkně ajaxem

PHP::


foreach ($postaCSV->getDBsluzby() as $z)
{
	$output[] = array('code' => $z['code'], 'action' => FALSE);

	if (Configuration::get('MODULE_DOBIRKA') == $order->module && Configuration::get('DEFAULT_DOBIRKA') == $z['code'])
		$output[] = array('code' => $z['code'], 'action' => TRUE);
				
	foreach ($postaCSV->selectDBbaliky(' WHERE `id_carrier` = \''.Tools::getValue('id_order_carrier').'\' AND `code_zasilky` = \''.Tools::getValue('submitPostaSluzbyAjax').'\'') as $k)
		if ($z['code'] != $k['id_sluzby'] || (Configuration::get('MODULE_DOBIRKA') == $order->module && Configuration::get('DEFAULT_DOBIRKA') == $z['code']))
			$output[] = array('code' => $k['id_sluzby'], 'action' => TRUE);

}


die(Tools::jsonEncode($output));


Kód vložený do šablony ::

<select name="{$order->id}_balik_{$order->id_carrier}" id="{$order->id}_balik_{$order->id_carrier}" style="width:100px;">
    
    {foreach $selectDBdopravci as $z}
		{foreach $selectDBzasilky as $k}
			{if $k['code'] == $z['code_zasilky']}
				<option type="text" label="{$k['code']} - {$k['name']}" value="{$z['code_zasilky']}" {if $z['code_zasilky'] == {$DEFAULT}}selected="selected"{/if}>{$z['code_zasilky']}</option>
			{/if}
		{/foreach}
	{/foreach}

	</select>
	<a id="{$order->id}mk_settings_anchor" class="settings_anchor" title="{l s='Nastavit '}" style="float:right">
		<span class="monosp">[+]</span>
	</a>
	<div class="settings_group_table" id="{$order->id}mk_settings" style="display:none">
		<table class="group_table">
			<tr>
				{assign var=nazev value=1}
				{foreach $selectDBsluzby as $z}
					{if $z['active']==2}
						<td style="width:1%;">{$z['code']}</td>
						<td style="width:20%;">{$z['name']}</td>
						<td style="width:1%;">
							<input type="checkbox" id="{$order->id}_sluzba_{$z['code']}" name="{$order->id}_sluzba_{$z['code']}" value="{$z['code']}" {if in_array($z['code'], $typ_dopravci)}checked="checked"{/if} {if ($module_dobirka == $order->module) && ($default_dobirka == $z['code'])}checked="checked"{/if}>
						</td>
						{if $nazev == 1 || $nazev == 2 || $nazev == 3}
							<td style="width:3%;">
							</td>
						{/if}
						{if $nazev == 4}
							</tr>
            				<tr>
							{assign var=nazev value=0}
						{/if}
						{assign var=nazev value={$nazev}+1}
					{/if}
            	{/foreach}
			</tr>
		</table>
	</div>
        <span class="success_{$order->id}" style="display:none"><a href="{$linka}" target="_new" title="{l s='Zobrazit sledování'}">
        	<img src="../img/t/AdminFeatures.gif" alt="Zobrazit sledování" /></a></span>
            
	<input type="hidden" id="CSV_{$order->id}" name="CSV_{$order->id}" value="{$order->id}" />
	<input type="hidden" id="CSV_carrier_{$order->id}" name="CSV_carrier_{$order->id}" value="{$order->id_carrier}" />
		
		<script type="text/javascript" >
			$(function() {
				$("#{$order->id}_balik_{$order->id_carrier}").change(function() {
					
					$.ajax({
						url: "{$link->getAdminLink('AdminOrders')}",
						type:"POST",
						dataType: "json",
						data : {
							submitPostaSluzbyAjax		: $("#{$order->id}_balik_{$order->id_carrier}").val(),
							id_order					: $("#CSV_{$order->id}").val(),
							id_order_carrier			: $("#CSV_carrier_{$order->id}").val()
						},
						success: function(jsonData) {
							for(var i= 0; i < jsonData.length; i++)
                				$('#{$order->id}_sluzba_' + jsonData[i].code).attr('checked',jsonData[i].action);
							}
					});
    			});
			});
		</script>

Snad to pomůže i někomu jinému

Nahlásit jako SPAM
IP: 213.155.247.–
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, 20 hostů

 

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