<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JavaScript / Ajax &#8211; Blackbams Blog</title>
	<atom:link href="https://blog.blackbam.at/de/category/web-development/javascript-ajax/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.blackbam.at/de</link>
	<description>development - digital arts - internet</description>
	<lastBuildDate>Tue, 08 Dec 2015 17:30:15 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.3</generator>
	<item>
		<title>(English) Ajax (jQuery) and loops: Local variable scoping and callback functions</title>
		<link>https://blog.blackbam.at/de/2015/12/08/ajax-jquery-and-loops-local-variable-scoping-and-callback-functions/</link>
					<comments>https://blog.blackbam.at/de/2015/12/08/ajax-jquery-and-loops-local-variable-scoping-and-callback-functions/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Tue, 08 Dec 2015 17:30:15 +0000</pubDate>
				<category><![CDATA[JavaScript / Ajax]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[asynchronous]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[scoping]]></category>
		<category><![CDATA[variable]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=2273</guid>

					<description><![CDATA[Leider ist der Eintrag nur auf English verfügbar.]]></description>
										<content:encoded><![CDATA[<p class="qtranxs-available-languages-message qtranxs-available-languages-message-de">Leider ist der Eintrag nur auf <a href="https://blog.blackbam.at/en/category/web-development/javascript-ajax/feed/" class="qtranxs-available-language-link qtranxs-available-language-link-en" title="English">English</a> verfügbar.</p>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2Fde%2F2015%2F12%2F08%2Fajax-jquery-and-loops-local-variable-scoping-and-callback-functions%2F&#038;title=%28English%29%20Ajax%20%28jQuery%29%20and%20loops%3A%20Local%20variable%20scoping%20and%20callback%20functions" data-a2a-url="https://blog.blackbam.at/de/2015/12/08/ajax-jquery-and-loops-local-variable-scoping-and-callback-functions/" data-a2a-title="(English) Ajax (jQuery) and loops: Local variable scoping and callback functions"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/de/2015/12/08/ajax-jquery-and-loops-local-variable-scoping-and-callback-functions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>(English) Basic Ajax Skeleton Code</title>
		<link>https://blog.blackbam.at/de/2012/02/07/basic-ajax-skeleton-code/</link>
					<comments>https://blog.blackbam.at/de/2012/02/07/basic-ajax-skeleton-code/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Tue, 07 Feb 2012 08:26:01 +0000</pubDate>
				<category><![CDATA[JavaScript / Ajax]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[skeleton]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=1848</guid>

					<description><![CDATA[(English) Nothing new, nothing special... just the working code of a basic Ajax skeleton, as this has to be copied and pasted that often. This example shows an application similar to Google suggest, which searches related values, whenever a key is pressed.]]></description>
										<content:encoded><![CDATA[<p class="qtranxs-available-languages-message qtranxs-available-languages-message-de">Leider ist der Eintrag nur auf <a href="https://blog.blackbam.at/en/category/web-development/javascript-ajax/feed/" class="qtranxs-available-language-link qtranxs-available-language-link-en" title="English">English</a> verfügbar.</p>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2Fde%2F2012%2F02%2F07%2Fbasic-ajax-skeleton-code%2F&#038;title=%28English%29%20Basic%20Ajax%20Skeleton%20Code" data-a2a-url="https://blog.blackbam.at/de/2012/02/07/basic-ajax-skeleton-code/" data-a2a-title="(English) Basic Ajax Skeleton Code"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/de/2012/02/07/basic-ajax-skeleton-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>(English) My todays top 10 most useful Javascript Functions</title>
		<link>https://blog.blackbam.at/de/2011/07/01/my-todays-top-10-most-useful-javascript-functions/</link>
					<comments>https://blog.blackbam.at/de/2011/07/01/my-todays-top-10-most-useful-javascript-functions/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Thu, 30 Jun 2011 22:21:10 +0000</pubDate>
				<category><![CDATA[JavaScript / Ajax]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript functions]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[top 10 javascript]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=1308</guid>

					<description><![CDATA[(English) These are my todays top 10 Javascript functions which I gathered in more than 6 months of casually Javascript Development. Almost each of them helped out of more than one problem, so they deserve to be perpetuated here and help again. Most of these are not written by me, but by some other great programmer on the web, and I really would like to mention all of them here if I would know where I have got all of these great scripts. Have fun an use wisely. [...]]]></description>
										<content:encoded><![CDATA[<p class="qtranxs-available-languages-message qtranxs-available-languages-message-de">Leider ist der Eintrag nur auf <a href="https://blog.blackbam.at/en/category/web-development/javascript-ajax/feed/" class="qtranxs-available-language-link qtranxs-available-language-link-en" title="English">English</a> verfügbar.</p>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2Fde%2F2011%2F07%2F01%2Fmy-todays-top-10-most-useful-javascript-functions%2F&#038;title=%28English%29%20My%20todays%20top%2010%20most%20useful%20Javascript%20Functions" data-a2a-url="https://blog.blackbam.at/de/2011/07/01/my-todays-top-10-most-useful-javascript-functions/" data-a2a-title="(English) My todays top 10 most useful Javascript Functions"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/de/2011/07/01/my-todays-top-10-most-useful-javascript-functions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Country Selector XHTML-konform deutsch mit Javascript für die Vorauswahl eines Landes</title>
		<link>https://blog.blackbam.at/de/2011/05/08/deutsch-country-selector-xhtml-konform-deutsch-mit-vorauswahl/</link>
					<comments>https://blog.blackbam.at/de/2011/05/08/deutsch-country-selector-xhtml-konform-deutsch-mit-vorauswahl/#comments</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Sun, 08 May 2011 19:50:29 +0000</pubDate>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[JavaScript / Ajax]]></category>
		<category><![CDATA[country selector]]></category>
		<category><![CDATA[iso 3166]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[länderauswahl]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=1345</guid>

					<description><![CDATA[Da auch dieses öfter mal gebraucht wird, anbei die fertige Länderauswahl-Liste nach dem ISO-Standard &#8222;ISO 3166&#8220; mit zweistelligem Länderkürzel und dazu die Funktion das gewählte Land per Javascript vorauszuwählen. Man muss natürlich überlegen, ob man für diese Aufgabe zum Beispiel in Benutzerprofilen nicht PHP verwenden will um sicherzugehen, dass alles seine Richtigkeit hat. Wo es [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Da auch dieses öfter mal gebraucht wird, anbei die fertige Länderauswahl-Liste nach dem ISO-Standard &#8222;ISO 3166&#8220; mit zweistelligem Länderkürzel und dazu die Funktion das gewählte Land per Javascript vorauszuwählen. Man muss natürlich überlegen, ob man für diese Aufgabe zum Beispiel in Benutzerprofilen nicht PHP verwenden will um sicherzugehen, dass alles seine Richtigkeit hat. Wo es aber verkraftbar ist, sollte man hier die Rechenlast lieber auf den Client abwälzen, wie ich denke. Keine Garantie auf Vollständigkeit oder Aktualität, sollte allerdings aktuell für 2011 stimmen.</p>
<p>&nbsp;</p>
<h3>Beispiel:</h3>
<p style="white-space:nowrap;"><label for="country_selector_german" style="display:inline; float:left;">Wähle ein Land aus *&nbsp;&nbsp;&nbsp;</label><br />
<select name="land" id="german_country_selector"  style="display:inline;float:left;"><option value="DE">Deutschland</option><option value="AT" selected="selected">Österreich</option><option value="CH">Schweiz</option><optgroup label="A"><option value="AF">Afghanistan</option><option value="EG">Ägypten</option><option value="AX">Åland</option><option value="AL">Albanien</option><option value="DZ">Algerien</option><option value="AS">Amerikanisch-Samoa</option><option value="VI">Amerikanische Jungferninseln</option><option value="AD">Andorra</option><option value="AO">Angola</option><option value="AI">Anguilla</option><option value="AQ">Antarktis</option><option value="AG">Antigua und Barbuda</option><option value="GQ">Äquatorialguinea</option><option value="AR">Argentinien</option><option value="AM">Armenien</option><option value="AW">Aruba</option><option value="AC">Ascension</option><option value="AZ">Aserbaidschan</option><option value="ET">Äthiopien</option><option value="AU">Australien</option></optgroup><br />
    <optgroup label="B"><option value="BS">Bahamas</option><option value="BH">Bahrain</option><option value="BD">Bangladesch</option><option value="BB">Barbados</option><option value="BY">Belarus (Weißrussland)</option><option value="BE">Belgien</option><option value="BZ">Belize</option><option value="BJ">Benin</option><option value="BM">Bermuda</option><option value="BT">Bhutan</option><option value="BO">Bolivien</option><option value="BA">Bosnien und Herzegowina</option><option value="BW">Botswana</option><option value="BV">Bouvetinsel</option><option value="BR">Brasilien</option><option value="VG">Britische Jungferninseln</option><option value="IO">Britisches Territorium im Indischen Ozean</option><option value="BN">Brunei Darussalam</option><option value="BG">Bulgarien</option><option value="BF">Burkina Faso</option><option value="BI">Burundi</option></optgroup><br />
    <optgroup label="C"><option value="EA">Ceuta, Melilla</option><option value="CL">Chile</option><option value="CN">Volksrepublik China</option><option value="CP">Clipperton</option><option value="CK">Cookinseln</option><option value="CR">Costa Rica</option><option value="CI">Côte d&#8217;Ivoire (Elfenbeinküste)</option></optgroup><br />
    <optgroup label="D"><option value="DK">Dänemark</option><option value="DE">Deutschland</option><option value="DG">Diego Garcia</option><option value="DM">Dominica</option><option value="DO">Dominikanische Republik</option><option value="DJ">Dschibuti</option></optgroup><br />
    <optgroup label="E"><option value="EC">Ecuador</option><option value="SV">El Salvador</option><option value="ER">Eritrea</option><option value="EE">Estland</option></optgroup><br />
    <optgroup label="F"><option value="FK">Falklandinseln</option><option value="FO">Färöer</option><option value="FJ">Fidschi</option><option value="FI">Finnland</option><option value="FR">Frankreich</option><option value="GF">Französisch-Guayana</option><option value="PF">Französisch-Polynesien</option></optgroup><br />
    <optgroup label="G"><option value="GA">Gabun</option><option value="GM">Gambia</option><option value="GE">Georgien</option><option value="GH">Ghana</option><option value="GI">Gibraltar</option><option value="GD">Grenada</option><option value="GR">Griechenland</option><option value="GL">Grönland</option><option value="GB">Großbritannien</option><option value="GP">Guadeloupe</option><option value="GU">Guam</option><option value="GT">Guatemala</option><option value="GG">Guernsey (Kanalinsel)</option><option value="GN">Guinea</option><option value="GW">Guinea-Bissau</option><option value="GY"><br />
        Guyana<br />
    </optgroup><br />
    <optgroup label="H"><option value="HT">Haiti</option><option value="HM">Heard- und McDonald-Inseln</option><option value="HN">Honduras</option><option value="HK">Hongkong</option></optgroup><br />
    <optgroup label="I"><option value="IN">Indien</option><option value="ID">Indonesien</option><option value="IM">Insel Man</option><option value="IQ">Irak</option><option value="IR">Iran</option><option value="IE">Irland</option><option value="IS">Island</option><option value="IL">Israel</option><option value="IT">Italien</option></optgroup><br />
    <optgroup label="J"><option value="JM">Jamaika</option><option value="JP">Japan</option><option value="YE">Jemen</option><option value="JE">Jersey (Kanalinsel)</option><option value="JO">Jordanien</option></optgroup><br />
    <optgroup label="K"><option value="KY">Kaimaninseln</option><option value="KH">Kambodscha</option><option value="CM">Kamerun</option><option value="CA">Kanada</option><option value="IC">Kanarische Inseln</option><option value="CV">Kap Verde</option><option value="KZ">Kasachstan</option><option value="QA">Katar</option><option value="KE">Kenia</option><option value="KG">Kirgisistan</option><option value="KI">Kiribati</option><option value="CC">Kokosinseln</option><option value="CO">Kolumbien</option><option value="KM">Komoren</option><option value="CD">Demokratische Republik Kongo</option><option value="KP">Demokratische Volksrepublik Korea (Nordkorea)</option><option value="KR">Republik Korea (Südkorea)</option><option value="HR">Kroatien</option><option value="CU">Kuba</option><option value="KW">Kuwait</option></optgroup><br />
    <optgroup label="L"><option value="LA">Laos</option><option value="LS">Lesotho</option><option value="LV">Lettland</option><option value="LB">Libanon</option><option value="LR">Liberia</option><option value="LY">Libyen</option><option value="LI">Liechtenstein</option><option value="LT">Litauen</option><option value="LU">Luxemburg</option></optgroup><br />
    <optgroup label="M"><option value="MO">Macao</option><option value="MG">Madagaskar</option><option value="MW">Malawi</option><option value="MY">Malaysia</option><option value="MV">Malediven</option><option value="ML">Mali</option><option value="MT">Malta</option><option value="MA">Marokko</option><option value="MH">Marshallinseln</option><option value="MQ">Martinique</option><option value="MR">Mauretanien</option><option value="MU">Mauritius</option><option value="YT">Mayotte</option><option value="MK">Mazedonien</option><option value="MX">Mexiko</option><option value="FM">Mikronesien</option><option value="MD">Moldawien (Republik Moldau)</option><option value="MC">Monaco</option><option value="MN">Mongolei</option><option value="ME">Montenegro</option><option value="MS">Montserrat</option><option value="MZ">Mosambik</option><option value="MM">Myanmar (Burma)</option></optgroup><br />
    <optgroup label="N"><option value="NA">Namibia</option><option value="NR">Nauru</option><option value="NP">Nepal</option><option value="NC">Neukaledonien</option><option value="NZ">Neuseeland</option><option value="NI">Nicaragua</option><option value="NL">Niederlande</option><option value="AN">Niederländische Antillen</option><option value="NE">Niger</option><option value="NG">Nigeria</option><option value="NU">Niue</option><option value="MP">Nördliche Marianen</option><option value="NF">Norfolkinsel</option><option value="NO">Norwegen</option></optgroup><br />
    <optgroup label="O"><option value="OM">Oman</option><option value="XO">Orbit</option><option value="AT">Österreich</option><option value="TL">Osttimor (Timor-Leste)</option></optgroup><br />
    <optgroup label="P"><option value="PK">Pakistan</option><option value="PS">Palästinensische Autonomiegebiete</option><option value="PW">Palau</option><option value="PA">Panama</option><option value="PG">Papua-Neuguinea</option><option value="PY">Paraguay</option><option value="PE">Peru</option><option value="PH">Philippinen</option><option value="PN">Pitcairninseln</option><option value="PL">Polen</option><option value="PT">Portugal</option><option value="PR">Puerto Rico</option></optgroup><br />
    <optgroup label="Q"><br />
    </optgroup><br />
    <optgroup label="R"><option value="TW">Republik China (Taiwan)</option><option value="CG">Republik Kongo</option><option value="RE">Réunion</option><option value="RW">Ruanda</option><option value="RO">Rumänien</option><option value="RU">Russische Föderation</option></optgroup><br />
    <optgroup label="S"><option value="BL">Saint-Barthélemy</option><option value="MF">Saint-Martin</option><option value="SB">Salomonen</option><option value="ZM">Sambia</option><option value="WS">Samoa</option><option value="SM">San Marino</option><option value="ST">São Tomé und Príncipe</option><option value="SA">Saudi-Arabien</option><option value="SE">Schweden</option><option value="CH">Schweiz</option><option value="SN">Senegal</option><option value="RS">Serbien</option><option value="SC">Seychellen</option><option value="SL">Sierra Leone</option><option value="ZW">Simbabwe</option><option value="SG">Singapur</option><option value="SK">Slowakei</option><option value="SI">Slowenien</option><option value="SO">Somalia</option><option value="ES">Spanien</option><option value="LK">Sri Lanka</option><option value="SH">St. Helena</option><option value="KN">St. Kitts und Nevis</option><option value="LC">St. Lucia</option><option value="PM">Saint-Pierre und Miquelon</option><option value="VC">St. Vincent und die Grenadinen</option><option value="ZA">Südafrika</option><option value="SD">Sudan</option><option value="GS">Südgeorgien und die Südlichen Sandwichinseln</option><option value="SR">Suriname</option><option value="SJ">Svalbard und Jan Mayen</option><option value="SZ">Swasiland</option><option value="SY">Syrien</option></optgroup><br />
    <optgroup label="T"><option value="TJ">Tadschikistan</option><option value="TZ">Tansania</option><option value="TH">Thailand</option><option value="TG">Togo</option><option value="TK">Tokelau</option><option value="TO">Tonga</option><option value="TT">Trinidad und Tobago</option><option value="TA">Tristan da Cunha</option><option value="TD">Tschad</option><option value="CZ">Tschechische Republik</option><option value="TN">Tunesien</option><option value="TR">Türkei</option><option value="TM">Turkmenistan</option><option value="TC">Turks- und Caicosinseln</option><option value="TV">Tuvalu</option></optgroup><br />
    <optgroup label="U"><option value="UG">Uganda</option><option value="UA">Ukraine</option><option value="HU">Ungarn</option><option value="UY">Uruguay</option><option value="UZ">Usbekistan</option></optgroup><br />
    <optgroup label="V"><option value="VU">Vanuatu</option><option value="VA">Vatikanstadt</option><option value="VE">Venezuela</option><option value="AE">Vereinigte Arabische Emirate</option><option value="US">Vereinigte Staaten von Amerika (USA)</option><option value="GB">Vereinigtes Königreich Großbritannien und Nordirland</option><option value="VN">Vietnam</option></optgroup><br />
    <optgroup label="W"><option value="WF">Wallis und Futuna</option><option value="CX">Weihnachtsinsel</option><option value="EH">Westsahara</option></optgroup><br />
    <optgroup label="Z"><option value="CF">Zentralafrikanische Republik</option><option value="CY">Zypern</option></optgroup><br />
</select>
</p>
<div style="clear:both; float:none;"></div>
<p>&nbsp;</p>
<p>Vorauswahl z.B. in einem Formular aufrufen und ausführen</p>
<pre lang="html4strict">
<label for="land">Bitte wähle Land aus*</label>

<?php if(isset($_REQUEST['land']) &#038;&#038; $_REQUEST['land'] !="") { ?>
	<script type="text/javascript">
	/* <![CDATA[ */
	    var selobj = document.getElementById('country_selector'); 
	    selectOptionByValue(selobj,""); 
	    /* ]]&gt; */
	</script>
<?php } ?>
</pre>
<p>&nbsp;</p>
<p>Javascript Funktion um die Vorauswahl zuverlässig durchzuführen</p>
<pre lang="javascript">
// save way to select option by value
function selectOptionByValue(selObj, val){
	var A = selObj.options, L = A.length;
	while (L) {
		if (A[--L].value == val) {
			selObj.selectedIndex = L;
			L = 0;
		}
	}
}
</pre>
<p>&nbsp;</p>
<p>Länderauswahl ISO 3166 XHTML</p>
<pre lang="html4strict">
<select name="land" id="german_country_selector">
    <option value="DE">Deutschland</option>
    <option value="AT" selected="selected">Österreich</option>
    <option value="CH">Schweiz</option>
    <optgroup label="A">
        <option value="AF">Afghanistan</option>
        <option value="EG">Ägypten</option>
        <option value="AX">Åland</option>
        <option value="AL">Albanien</option>
        <option value="DZ">Algerien</option>
        <option value="AS">Amerikanisch-Samoa</option>
        <option value="VI">Amerikanische Jungferninseln</option>
        <option value="AD">Andorra</option>
        <option value="AO">Angola</option>
        <option value="AI">Anguilla</option>
        <option value="AQ">Antarktis</option>
        <option value="AG">Antigua und Barbuda</option>
        <option value="GQ">Äquatorialguinea</option>
        <option value="AR">Argentinien</option>
        <option value="AM">Armenien</option>
        <option value="AW">Aruba</option>
        <option value="AC">Ascension</option>
        <option value="AZ">Aserbaidschan</option>
        <option value="ET">Äthiopien</option>
        <option value="AU">Australien</option>
    </optgroup>
    <optgroup label="B">
        <option value="BS">Bahamas</option>
        <option value="BH">Bahrain</option>
        <option value="BD">Bangladesch</option>
        <option value="BB">Barbados</option>
        <option value="BY">Belarus (Weißrussland)</option>
        <option value="BE">Belgien</option>
        <option value="BZ">Belize</option>
        <option value="BJ">Benin</option>
        <option value="BM">Bermuda</option>
        <option value="BT">Bhutan</option>
        <option value="BO">Bolivien</option>
        <option value="BA">Bosnien und Herzegowina</option>
        <option value="BW">Botswana</option>
        <option value="BV">Bouvetinsel</option>
        <option value="BR">Brasilien</option>
        <option value="VG">Britische Jungferninseln</option>
        <option value="IO">Britisches Territorium im Indischen Ozean</option>
        <option value="BN">Brunei Darussalam</option>
        <option value="BG">Bulgarien</option>
        <option value="BF">Burkina Faso</option>
        <option value="BI">Burundi</option>
    </optgroup>
    <optgroup label="C">
        <option value="EA">Ceuta, Melilla</option>
        <option value="CL">Chile</option>
        <option value="CN">Volksrepublik China</option>
        <option value="CP">Clipperton</option>
        <option value="CK">Cookinseln</option>
        <option value="CR">Costa Rica</option>
        <option value="CI">Côte d'Ivoire (Elfenbeinküste)</option>
    </optgroup>
    <optgroup label="D">
        <option value="DK">Dänemark</option>
        <option value="DE">Deutschland</option>
        <option value="DG">Diego Garcia</option>
        <option value="DM">Dominica</option>
        <option value="DO">Dominikanische Republik</option>
        <option value="DJ">Dschibuti</option>
    </optgroup>
    <optgroup label="E">
        <option value="EC">Ecuador</option>
        <option value="SV">El Salvador</option>
        <option value="ER">Eritrea</option>
        <option value="EE">Estland</option>
    </optgroup>
    <optgroup label="F">
        <option value="FK">Falklandinseln</option>
        <option value="FO">Färöer</option>
        <option value="FJ">Fidschi</option>
        <option value="FI">Finnland</option>
        <option value="FR">Frankreich</option>
        <option value="GF">Französisch-Guayana</option>
        <option value="PF">Französisch-Polynesien</option>
    </optgroup>
    <optgroup label="G">
        <option value="GA">Gabun</option>
        <option value="GM">Gambia</option>
        <option value="GE">Georgien</option>
        <option value="GH">Ghana</option>
        <option value="GI">Gibraltar</option>
        <option value="GD">Grenada</option>
        <option value="GR">Griechenland</option>
        <option value="GL">Grönland</option>
        <option value="GB">Großbritannien</option>
        <option value="GP">Guadeloupe</option>
        <option value="GU">Guam</option>
        <option value="GT">Guatemala</option>
        <option value="GG">Guernsey (Kanalinsel)</option>
        <option value="GN">Guinea</option>
        <option value="GW">Guinea-Bissau</option>
        <option value="GY">
        Guyana
    </optgroup>
    <optgroup label="H">
        <option value="HT">Haiti</option>
        <option value="HM">Heard- und McDonald-Inseln</option>
        <option value="HN">Honduras</option>
        <option value="HK">Hongkong</option>
    </optgroup>
    <optgroup label="I">
        <option value="IN">Indien</option>
        <option value="ID">Indonesien</option>
        <option value="IM">Insel Man</option>
        <option value="IQ">Irak</option>
        <option value="IR">Iran</option>
        <option value="IE">Irland</option>
        <option value="IS">Island</option>
        <option value="IL">Israel</option>
        <option value="IT">Italien</option>
    </optgroup>
    <optgroup label="J">
        <option value="JM">Jamaika</option>
        <option value="JP">Japan</option>
        <option value="YE">Jemen</option>
        <option value="JE">Jersey (Kanalinsel)</option>
        <option value="JO">Jordanien</option>
    </optgroup>
    <optgroup label="K">
        <option value="KY">Kaimaninseln</option>
        <option value="KH">Kambodscha</option>
        <option value="CM">Kamerun</option>
        <option value="CA">Kanada</option>
        <option value="IC">Kanarische Inseln</option>
        <option value="CV">Kap Verde</option>
        <option value="KZ">Kasachstan</option>
        <option value="QA">Katar</option>
        <option value="KE">Kenia</option>
        <option value="KG">Kirgisistan</option>
        <option value="KI">Kiribati</option>
        <option value="CC">Kokosinseln</option>
        <option value="CO">Kolumbien</option>
        <option value="KM">Komoren</option>
        <option value="CD">Demokratische Republik Kongo</option>
        <option value="KP">Demokratische Volksrepublik Korea (Nordkorea)</option>
        <option value="KR">Republik Korea (Südkorea)</option>
        <option value="HR">Kroatien</option>
        <option value="CU">Kuba</option>
        <option value="KW">Kuwait</option>
    </optgroup>
    <optgroup label="L">
        <option value="LA">Laos</option>
        <option value="LS">Lesotho</option>
        <option value="LV">Lettland</option>
        <option value="LB">Libanon</option>
        <option value="LR">Liberia</option>
        <option value="LY">Libyen</option>
        <option value="LI">Liechtenstein</option>
        <option value="LT">Litauen</option>
        <option value="LU">Luxemburg</option>
    </optgroup>
    <optgroup label="M">
        <option value="MO">Macao</option>
        <option value="MG">Madagaskar</option>
        <option value="MW">Malawi</option>
        <option value="MY">Malaysia</option>
        <option value="MV">Malediven</option>
        <option value="ML">Mali</option>
        <option value="MT">Malta</option>
        <option value="MA">Marokko</option>
        <option value="MH">Marshallinseln</option>
        <option value="MQ">Martinique</option>
        <option value="MR">Mauretanien</option>
        <option value="MU">Mauritius</option>
        <option value="YT">Mayotte</option>
        <option value="MK">Mazedonien</option>
        <option value="MX">Mexiko</option>
        <option value="FM">Mikronesien</option>
        <option value="MD">Moldawien (Republik Moldau)</option>
        <option value="MC">Monaco</option>
        <option value="MN">Mongolei</option>
        <option value="ME">Montenegro</option>
        <option value="MS">Montserrat</option>
        <option value="MZ">Mosambik</option>
        <option value="MM">Myanmar (Burma)</option>
    </optgroup>
    <optgroup label="N">
        <option value="NA">Namibia</option>
        <option value="NR">Nauru</option>
        <option value="NP">Nepal</option>
        <option value="NC">Neukaledonien</option>
        <option value="NZ">Neuseeland</option>
        <option value="NI">Nicaragua</option>
        <option value="NL">Niederlande</option>
        <option value="AN">Niederländische Antillen</option>
        <option value="NE">Niger</option>
        <option value="NG">Nigeria</option>
        <option value="NU">Niue</option>
        <option value="MP">Nördliche Marianen</option>
        <option value="NF">Norfolkinsel</option>
        <option value="NO">Norwegen</option>
    </optgroup>
    <optgroup label="O">
        <option value="OM">Oman</option>
        <option value="XO">Orbit</option>
        <option value="AT">Österreich</option>
        <option value="TL">Osttimor (Timor-Leste)</option>
    </optgroup>
    <optgroup label="P">
        <option value="PK">Pakistan</option>
        <option value="PS">Palästinensische Autonomiegebiete</option>
        <option value="PW">Palau</option>
        <option value="PA">Panama</option>
        <option value="PG">Papua-Neuguinea</option>
        <option value="PY">Paraguay</option>
        <option value="PE">Peru</option>
        <option value="PH">Philippinen</option>
        <option value="PN">Pitcairninseln</option>
        <option value="PL">Polen</option>
        <option value="PT">Portugal</option>
        <option value="PR">Puerto Rico</option>
    </optgroup>
    <optgroup label="Q">
    </optgroup>
    <optgroup label="R">
        <option value="TW">Republik China (Taiwan)</option>
        <option value="CG">Republik Kongo</option>
        <option value="RE">Réunion</option>
        <option value="RW">Ruanda</option>
        <option value="RO">Rumänien</option>
        <option value="RU">Russische Föderation</option>
    </optgroup>
    <optgroup label="S">
        <option value="BL">Saint-Barthélemy</option>
        <option value="MF">Saint-Martin</option>
        <option value="SB">Salomonen</option>
        <option value="ZM">Sambia</option>
        <option value="WS">Samoa</option>
        <option value="SM">San Marino</option>
        <option value="ST">São Tomé und Príncipe</option>
        <option value="SA">Saudi-Arabien</option>
        <option value="SE">Schweden</option>
        <option value="CH">Schweiz</option>
        <option value="SN">Senegal</option>
        <option value="RS">Serbien</option>
        <option value="SC">Seychellen</option>
        <option value="SL">Sierra Leone</option>
        <option value="ZW">Simbabwe</option>
        <option value="SG">Singapur</option>
        <option value="SK">Slowakei</option>
        <option value="SI">Slowenien</option>
        <option value="SO">Somalia</option>
        <option value="ES">Spanien</option>
        <option value="LK">Sri Lanka</option>
        <option value="SH">St. Helena</option>
        <option value="KN">St. Kitts und Nevis</option>
        <option value="LC">St. Lucia</option>
        <option value="PM">Saint-Pierre und Miquelon</option>
        <option value="VC">St. Vincent und die Grenadinen</option>
        <option value="ZA">Südafrika</option>
        <option value="SD">Sudan</option>
        <option value="GS">Südgeorgien und die Südlichen Sandwichinseln</option>
        <option value="SR">Suriname</option>
        <option value="SJ">Svalbard und Jan Mayen</option>
        <option value="SZ">Swasiland</option>
        <option value="SY">Syrien</option>
    </optgroup>
    <optgroup label="T">
        <option value="TJ">Tadschikistan</option>
        <option value="TZ">Tansania</option>
        <option value="TH">Thailand</option>
        <option value="TG">Togo</option>
        <option value="TK">Tokelau</option>
        <option value="TO">Tonga</option>
        <option value="TT">Trinidad und Tobago</option>
        <option value="TA">Tristan da Cunha</option>
        <option value="TD">Tschad</option>
        <option value="CZ">Tschechische Republik</option>
        <option value="TN">Tunesien</option>
        <option value="TR">Türkei</option>
        <option value="TM">Turkmenistan</option>
        <option value="TC">Turks- und Caicosinseln</option>
        <option value="TV">Tuvalu</option>
    </optgroup>
    <optgroup label="U">
        <option value="UG">Uganda</option>
        <option value="UA">Ukraine</option>
        <option value="HU">Ungarn</option>
        <option value="UY">Uruguay</option>
        <option value="UZ">Usbekistan</option>
    </optgroup>
    <optgroup label="V">
        <option value="VU">Vanuatu</option>
        <option value="VA">Vatikanstadt</option>
        <option value="VE">Venezuela</option>
        <option value="AE">Vereinigte Arabische Emirate</option>
        <option value="US">Vereinigte Staaten von Amerika (USA)</option>
        <option value="GB">Vereinigtes Königreich Großbritannien und Nordirland</option>
        <option value="VN">Vietnam</option>
    </optgroup>
    <optgroup label="W">
        <option value="WF">Wallis und Futuna</option>
        <option value="CX">Weihnachtsinsel</option>
        <option value="EH">Westsahara</option>
    </optgroup>
    <optgroup label="Z">
        <option value="CF">Zentralafrikanische Republik</option>
        <option value="CY">Zypern</option>
    </optgroup>
</select>
</pre>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2Fde%2F2011%2F05%2F08%2Fdeutsch-country-selector-xhtml-konform-deutsch-mit-vorauswahl%2F&#038;title=Country%20Selector%20XHTML-konform%20deutsch%20mit%20Javascript%20f%C3%BCr%20die%20Vorauswahl%20eines%20Landes" data-a2a-url="https://blog.blackbam.at/de/2011/05/08/deutsch-country-selector-xhtml-konform-deutsch-mit-vorauswahl/" data-a2a-title="Country Selector XHTML-konform deutsch mit Javascript für die Vorauswahl eines Landes"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/de/2011/05/08/deutsch-country-selector-xhtml-konform-deutsch-mit-vorauswahl/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Scroll a very big database table with Ajax</title>
		<link>https://blog.blackbam.at/de/2010/10/18/scroll-a-very-big-database-table-with-ajax/</link>
					<comments>https://blog.blackbam.at/de/2010/10/18/scroll-a-very-big-database-table-with-ajax/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Mon, 18 Oct 2010 16:56:41 +0000</pubDate>
				<category><![CDATA[JavaScript / Ajax]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[very big table]]></category>
		<guid isPermaLink="false">http://www.blackbam.at/blog/?p=885</guid>

					<description><![CDATA[This tutorial shows how it is possible to scroll a very big database table using Asynchronous Javascript and JSON with an easy extendable and customizable script. We created four files &#8211; index.html (contains the Ajax table), functions.js (contains all the Ajax work), suggest.php (the server-side work), and entries.php (server-side script for instantiating number of table [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This tutorial shows how it is possible to scroll a very big database table using Asynchronous Javascript and JSON with an easy extendable and customizable script. We created four files &#8211; index.html (contains the Ajax table), functions.js (contains all the Ajax work), suggest.php (the server-side work), and entries.php (server-side script for instantiating number of table values). There is also a dummy file to create and fill the database with values fast, which is called &#8222;createTable.php&#8220;.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><strong><a href="http://www.blackbam.at/examples/ajaxdb/">Watch the example here</a></strong></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>Function: When a user types in a certain pattern, the twenty nearest values are fetched from the database. When a user scrolls the table, the values are fetched depending on the position of the cursor or by fetching the next or previous entries from the database.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div class="code_title">index.html</div>
<pre lang="html4strict">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
    <head>
        <title>Scrolling a very big database table</title>
        <script type="text/javascript" src="functions.js">
        </script>
        <style type="text/css">
            #gscr div {
                height: 1px;
                width: 1px;
            }
			
			#result tr td {
				cursor:pointer;
			}
        </style>
    </head>
    <body>
        <h2>Demonstration</h2>
        <p>Shows how to get an fast and precise result from scrolling a big table using Asynchronous Javascript with JSON.</p>
        <br/>
		<div id="loading" style="display:block;"><img decoding="async" src="loader.gif" /></div>
		<div id="container" style="display:none;">
	        <div id="the_table">
	            <div id="result_area" style="float:left; width:200px;">
	                <table id="result"> </table>
	            </div>
	            <div style="float:left;">
	                <a href="javascript:scroll('u')">previous 20</a>
	                <div id="gscr" style="width:40px; height:400px; overflow-y:scroll;" onmouseup="javascript:scrAction();"> </div>
	                <a href="javascript:scroll('d')">next 20</a>
	            </div>
				<div id="collection" style="float:left; padding-left:80px;">
					<h4>Collected values</h4>
				</div>
				<div style="clear:both;"></div>
	        </div><!-- the_table div -->
	        <br/>
			<p>Search for a specific pattern:</p>
			<input type="text" id="suggest_field" onkeyup="javascript:make_suggestion(this.value,'string');"/>
			<input type="hidden" id="allEntries" value="" />
			<input type="hidden" id="mode" value="number" />
			<input type="hidden" id="running" value="no" />
			<input type="hidden" id="current" value="1" />
		</div><!-- container div -->
        <script type="text/javascript">
            make_suggestion("", "entries");
        </script>
    </body>
</html>
</pre>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div class="code_title">functions.js</div>
<pre lang="javascript">
/**
 * @author Blackbam
 */
var XMLHTTP = null;
var onetime = 1;
var onetime2 = 1;

// Server-Request for data depending on parameters
function make_suggestion(compValue, how){

    if (how == "string") {
        document.getElementById("mode").value = "string";
    }

    // instantiate browser-independent XMLHttpRequest
    if (window.XMLHttpRequest) {
        XMLHTTP = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
            try {
                XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (ex) {
                try {
                    XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (ex) {
                }
            }
        }
	
    if (how == "entries") {
		// Get the whole number of entries when loading the page
		var scrHeight = document.getElementById("gscr").style.height;
        XMLHTTP.open("GET", "entries.php?height="+scrHeight);
        XMLHTTP.onreadystatechange = setEntries;
    } else {
        if (how == "string" && compValue == "") {
            document.getElementById("current").value = 1;
			numeric_request();
        } else {
                XMLHTTP.open("GET", "suggest.php?compValue=" + compValue + "&how=" + how);
                XMLHTTP.onreadystatechange = MyRequestExecute;
        }
    }
    XMLHTTP.send(null);
}

// is called when the Server-Request reaches a new state
function MyRequestExecute(){
	// the answer from the server is hier when the XMLHTTP.readyState = 4
    if (XMLHTTP.readyState == 4) {
		
		// remove old entries from the table
		var cell = document.getElementById("result");
		if ( cell.hasChildNodes() ){
		    while ( cell.childNodes.length >= 1 ) {
		        cell.removeChild( cell.firstChild );       
		    } 
		}
		
		// Create a valid table content with the Jason-object
		var obj=eval('('+XMLHTTP.responseText+')');
		for(val in obj){
			var tr = cell.appendChild(document.createElement("tr"));
			var td = tr.appendChild(document.createElement("td"));
			td.setAttribute("onclick","javascript:collect(this.firstChild.nodeValue);");
			td.appendChild(document.createTextNode(obj[val]));
		}
		
		// if first time, display the table to the user now
		if (onetime2 == 1) {
			document.getElementById("loading").style.display = "none";
			document.getElementById("container").style.display = "block";
			onetime2 = 0;
		}
    }
}

// this function is called when the page is loaded first
function setEntries(){
	
	// when the server answers the number of table entries
    if (XMLHTTP.readyState == 4) {
		if (onetime == 1) {
			onetime = 0;
			var entries = XMLHTTP.responseText;
			document.getElementById("allEntries").value = entries;
			
			// a little hack: create as many 1px-divs as there are entries in the database
			for (i = 0; i <= entries; i++) {
				document.getElementById("gscr").appendChild(document.createElement("div"));
			}
			
			// now fill the table
			numeric_request();
		}
    }
}

// is used if a user scrolls the table using the scrollbar
function scrAction() {
	// alert(document.getElementById("gscr").scrollTop+1);
	document.getElementById("current").value=(document.getElementById("gscr").scrollTop+1);
	numeric_request();
}

// is called every time a user scrolls the table
function numeric_request(){
	document.getElementById("mode").value = "number";
	var startentry = document.getElementById("current").value;
	make_suggestion(startentry, "number");
}

// is called if a user scrolls the table by previous and next entries
function scroll(wohin){
	
	var curEntr = document.getElementById("current");
	var scrollbar = document.getElementById("gscr");

	var scrval = parseInt(curEntr.value);
	var allEntries = parseInt(document.getElementById("allEntries").value);
	
	if(wohin == 'u'){
		if(scrval < 20) {
			curEntr.value = 1;
			scrollbar.scrollTop = 1;
		} else {
			curEntr.value = (scrval-19);
			scrollbar.scrollTop = (scrval-19);
		}
	} else {
		var scrHeight = parseInt(document.getElementById("gscr").style.height)-2;
		var whole = parseInt(allEntries-scrHeight);
		if(scrval >= whole) {
			curEntr.value = whole;
			scrollbar.scrollTop = whole;
		} else {
			curEntr.value = (scrval+19);
			scrollbar.scrollTop = (scrval+19);
		}
	}
	numeric_request();
}

// stores the values the user has clicked
function collect(value) {
	document.getElementById("collection").appendChild(document.createTextNode(value));
	document.getElementById("collection").appendChild(document.createElement("br"));
}
</pre>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div class="code_title">suggest.php</div>
<pre lang="php">
<?php
/* Strings 2 compare */
$suggest_string = $_GET["compValue"];
$how = $_GET["how"];

/* MySQL connection */
$hostname = 'localhost';
$username = 'root';
$password = '';

// SQL-Statement
if ($how == "number") {
    $sql = "SELECT * FROM meta ORDER BY random_word LIMIT ".$suggest_string.",20";
} else {
    $sql = "SELECT * FROM meta WHERE random_word LIKE '".$suggest_string."%' ORDER BY random_word LIMIT 20";
}

$result_string = array();
$i = 0;

try {
    // Datenbankverbindung
    $db = new PDO("mysql:host=$hostname;dbname=meta", $username, $password);

    // Ergebnisse holen
    foreach ($db->query($sql) as $row) {
        $result_string[$i] = $row['random_word'];
		$i++;
    }

}
catch(PDOException $e) {
    echo $e->getMessage();
}

echo json_encode($result_string);

?>
</pre>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div class="code_title">entries.php</div>
<pre lang="php">
<?php
/* MySQL connection */
$hostname = 'localhost';
$username = 'root';
$password = '';

// höhe des scrolldivs hinzurechnen
$height = $_GET["height"]-22;

$sql = "SELECT * from meta";

$result_string = "";

try {
    // database connection
    $db = new PDO("mysql:host=$hostname;dbname=meta", $username, $password);

    // get results
    $result_string = count($db->query($sql)->fetchAll())+$height;

}
catch(PDOException $e) {
    echo $e->getMessage();
}

echo $result_string;

?>
</pre>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div class="code_title">The dummy &#8211; createTable.php</div>
<pre lang="php">
/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'root';

/*** mysql password ***/
$password = '';

try {
    $db = new PDO("mysql:host=$hostname;dbname=meta", $username, $password);

    for ($i = 0; $i < 12000; $i++) {
        $random_word = randWord();
        try {
            $db->exec("INSERT INTO meta(random_word) VALUES ('$random_word')");
        }
        catch(PDOException $e) {
            echo "Eintrag ".$random_word." konnte nicht geschrieben werden. <br/>";
        }
    }

}
catch(PDOException $e) {
    echo $e->getMessage();
}

function randWord() {
    $length = rand(5, 15);
    $characters = "abcdefghijklmnopqrstuvwxyz";
    $string = "";

    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters))];
    }

    return $string;
}

echo "It is finally done without crashing the server!";

?>
</pre>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2Fde%2F2010%2F10%2F18%2Fscroll-a-very-big-database-table-with-ajax%2F&#038;title=Scroll%20a%20very%20big%20database%20table%20with%20Ajax" data-a2a-url="https://blog.blackbam.at/de/2010/10/18/scroll-a-very-big-database-table-with-ajax/" data-a2a-title="Scroll a very big database table with Ajax"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/de/2010/10/18/scroll-a-very-big-database-table-with-ajax/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
