v2.5.2
Giriş yap

Ülkeler selexbox'ında kullanıcının ülkesini otomatik seçmek

pcmemo
1,156 defa görüntülendi ve 6 kişi tarafından değerlendirildi

Merhaba, bir kayıt formunda ülkelerin listelendiği selexboxta kullanıcının üklesini otomatik seçili nasıl getirebilirim.

Cevap yaz
Cevaplar (7)
pcmemo
1611 gün önce

Bu daha kolay işimi gördü. Teşekkürler @tayfunerbilen

tayfunerbilen
1612 gün önce

JS kullanmana gerek yok, şöyle de yapabilirsin @alpsar4l örneğini;

<?php
$user_ip = $_SERVER['REMOTE_ADDR']; // localostta denersen ip adresi ::1 olarak çıktı verir o yüzden hiç bir sonuç elde edemezsin burada bir sunucuda denemeni tavsiye ederim.
$ipapi = json_decode(file_get_contents("http://ip-api.com/json/$user_ip"));
$c_code = strtoupper($ipapi->location->languages[0]->code);
$countries = [
    'TR' => 'Türkiye',
    'NL' => 'Hollanda',
    'DE' => 'Almanya'
];
?>
<select id='liste'>
    <?php foreach($countries as $key => $val): ?>
        <option <?=$key == $c_code ? ' selected ' : null ?> value="<?=$key?>"><?=$val?></option>
    <?php endforeach; ?>
</select>
pcmemo
1612 gün önce

Selam @alpsar4l, tam da aradığım bu. Teşekkür ederim.

Aşağıdaki javascript kodları sublime text te hata gösteriyor ve dolayısı ile çalışmadı. Javascript bilmediğim için de (varsa) hatanın nerde olduğunu anlayamadım.

function select(c) {
    document.getElementById("liste").value = c
}

Başarana kadar biraz yoracağım seni sanırım :) Tekrar çok teşekkür ederim.

alpsar4l
1613 gün önce

Merhaba, 9 gün önce yazılmış umarım ki halledebilmişsindir fakat eğer ki halledemediysen şu kod işini görür

<select id='liste'>
    <option value="TR">Türkiye</option>
    <option value="NL">Hollanda</option>
    <option value="US">Birleşik Devletler</option>
</select>
function select(c) {
    document.getElementById("liste").value = c
}

Çalıştırmak için

// Türkiye şıkkını şeçmek için:
select("TR")

// Sayfa hazır olduğunda Türkiye şıkkını seçmek için:
$(document).ready(function() {
    select("TR")
});

Kullanıcının nerede olduğuna dair en ufak bir fikrin falan yoksa onuda şöyle halledebilirsin:

$user_ip = $_SERVER['REMOTE_ADDR']; // localostta denersen ip adresi ::1 olarak çıktı verir o yüzden hiç bir sonuç elde edemezsin burada bir sunucuda denemeni tavsiye ederim.
$ipapi = json_decode(file_get_contents("http://ip-api.com/json/$user_ip"));

$c_code = strtoupper($ipapi->location->languages[0]->code);

echo "
$(document).ready(function() {
    select('" . $c_code . "')
});
";

böyle bir şey yapabilirsin, bizzat kendi yaptığım sistemden aldım yani çalışıyor olması gerekiyor.
görüşürüz

myrioos
1622 gün önce

hocam ülkeler için bir fonksiyon kullanıyorum umarım işinize yarar.

function countries()
{
	$countries = Array(
		'AF' => 'Afghanistan',
		'AL' => 'Albania',
		'DZ' => 'Algeria',
		'AS' => 'American Samoa',
		'AD' => 'Andorra',
		'AO' => 'Angola',
		'AI' => 'Anguilla',
		'AG' => 'Antigua And Barbuda',
		'AR' => 'Argentina',
		'AM' => 'Armenia',
		'AW' => 'Aruba',
		'AU' => 'Australia',
		'AT' => 'Austria',
		'AZ' => 'Azerbaijan',
		'BS' => 'Bahamas',
		'BH' => 'Bahrain',
		'BD' => 'Bangladesh',
		'BB' => 'Barbados',
		'BY' => 'Belarus',
		'BE' => 'Belgium',
		'BZ' => 'Belize',
		'BJ' => 'Benin',
		'BM' => 'Bermuda',
		'BT' => 'Bhutan',
		'BO' => 'Bolivia',
		'BA' => 'Bosnia And Herzegovina',
		'BW' => 'Botswana',
		'BR' => 'Brazil',
		'IO' => 'British Indian Ocean Territory',
		'BN' => 'Brunei',
		'BG' => 'Bulgaria',
		'BF' => 'Burkina Faso',
		'BI' => 'Burundi',
		'KH' => 'Cambodia',
		'CM' => 'Cameroon',
		'CA' => 'Canada',
		'CV' => 'Cape Verde',
		'KY' => 'Cayman Islands',
		'CF' => 'Central African Republic',
		'TD' => 'Chad',
		'CL' => 'Chile',
		'CN' => 'China',
		'CO' => 'Colombia',
		'CG' => 'Congo',
		'CK' => 'Cook Islands',
		'CR' => 'Costa Rica',
		'CI' => 'Cote D\'ivoire',
		'HR' => 'Croatia',
		'CU' => 'Cuba',
		'CY' => 'Cyprus',
		'CZ' => 'Czech Republic',
		'CD' => 'Democratic Republic of the Congo',
		'DK' => 'Denmark',
		'DJ' => 'Djibouti',
		'DM' => 'Dominica',
		'DO' => 'Dominican Republic',
		'EC' => 'Ecuador',
		'EG' => 'Egypt',
		'SV' => 'El Salvador',
		'GQ' => 'Equatorial Guinea',
		'ER' => 'Eritrea',
		'EE' => 'Estonia',
		'ET' => 'Ethiopia',
		'FO' => 'Faroe Islands',
		'FM' => 'Federated States Of Micronesia',
		'FJ' => 'Fiji',
		'FI' => 'Finland',
		'FR' => 'France',
		'GF' => 'French Guiana',
		'PF' => 'French Polynesia',
		'GA' => 'Gabon',
		'GM' => 'Gambia',
		'GE' => 'Georgia',
		'DE' => 'Germany',
		'GH' => 'Ghana',
		'GI' => 'Gibraltar',
		'GR' => 'Greece',
		'GL' => 'Greenland',
		'GD' => 'Grenada',
		'GP' => 'Guadeloupe',
		'GU' => 'Guam',
		'GT' => 'Guatemala',
		'GN' => 'Guinea',
		'GW' => 'Guinea Bissau',
		'GY' => 'Guyana',
		'HT' => 'Haiti',
		'HN' => 'Honduras',
		'HK' => 'Hong Kong',
		'HU' => 'Hungary',
		'IS' => 'Iceland',
		'IN' => 'India',
		'ID' => 'Indonesia',
		'IR' => 'Iran',
		'IE' => 'Ireland',
		'IL' => 'Israel',
		'IT' => 'Italy',
		'JM' => 'Jamaica',
		'JP' => 'Japan',
		'JO' => 'Jordan',
		'KZ' => 'Kazakhstan',
		'KE' => 'Kenya',
		'KW' => 'Kuwait',
		'KG' => 'Kyrgyzstan',
		'LA' => 'Laos',
		'LV' => 'Latvia',
		'LB' => 'Lebanon',
		'LS' => 'Lesotho',
		'LY' => 'Libyan Arab Jamahiriya',
		'LI' => 'Liechtenstein',
		'LT' => 'Lithuania',
		'LU' => 'Luxembourg',
		'MK' => 'Macedonia',
		'MG' => 'Madagascar',
		'MW' => 'Malawi',
		'MY' => 'Malaysia',
		'MV' => 'Maldives',
		'ML' => 'Mali',
		'MT' => 'Malta',
		'MQ' => 'Martinique',
		'MR' => 'Mauritania',
		'MU' => 'Mauritius',
		'MX' => 'Mexico',
		'MC' => 'Monaco',
		'MN' => 'Mongolia',
		'ME' => 'Montenegro',
		'MA' => 'Morocco',
		'MZ' => 'Mozambique',
		'MM' => 'Myanmar',
		'NA' => 'Namibia',
		'NP' => 'Nepal',
		'NL' => 'Netherlands',
		'AN' => 'Netherlands Antilles',
		'NC' => 'New Caledonia',
		'NZ' => 'New Zealand',
		'NI' => 'Nicaragua',
		'NE' => 'Niger',
		'NG' => 'Nigeria',
		'NF' => 'Norfolk Island',
		'MP' => 'Northern Mariana Islands',
		'NO' => 'Norway',
		'OM' => 'Oman',
		'PK' => 'Pakistan',
		'PW' => 'Palau',
		'PA' => 'Panama',
		'PG' => 'Papua New Guinea',
		'PY' => 'Paraguay',
		'PE' => 'Peru',
		'PH' => 'Philippines',
		'PL' => 'Poland',
		'PT' => 'Portugal',
		'PR' => 'Puerto Rico',
		'QA' => 'Qatar',
		'MD' => 'Republic Of Moldova',
		'RE' => 'Reunion',
		'RO' => 'Romania',
		'RU' => 'Russia',
		'RW' => 'Rwanda',
		'KN' => 'Saint Kitts And Nevis',
		'LC' => 'Saint Lucia',
		'VC' => 'Saint Vincent And The Grenadines',
		'WS' => 'Samoa',
		'SM' => 'San Marino',
		'ST' => 'Sao Tome And Principe',
		'SA' => 'Saudi Arabia',
		'SN' => 'Senegal',
		'RS' => 'Serbia',
		'SC' => 'Seychelles',
		'SG' => 'Singapore',
		'SK' => 'Slovakia',
		'SI' => 'Slovenia',
		'SB' => 'Solomon Islands',
		'ZA' => 'South Africa',
		'KR' => 'South Korea',
		'ES' => 'Spain',
		'LK' => 'Sri Lanka',
		'SD' => 'Sudan',
		'SR' => 'Suriname',
		'SZ' => 'Swaziland',
		'SE' => 'Sweden',
		'CH' => 'Switzerland',
		'SY' => 'Syrian Arab Republic',
		'TW' => 'Taiwan',
		'TJ' => 'Tajikistan',
		'TZ' => 'Tanzania',
		'TH' => 'Thailand',
		'TG' => 'Togo',
		'TO' => 'Tonga',
		'TT' => 'Trinidad And Tobago',
		'TN' => 'Tunisia',
		'TR' => 'Turkey',
		'TM' => 'Turkmenistan',
		'UG' => 'Uganda',
		'UA' => 'Ukraine',
		'AE' => 'United Arab Emirates',
		'GB' => 'United Kingdom',
		'US' => 'United States',
		'UY' => 'Uruguay',
		'UZ' => 'Uzbekistan',
		'VU' => 'Vanuatu',
		'VE' => 'Venezuela',
		'VN' => 'Vietnam',
		'VG' => 'Virgin Islands British',
		'VI' => 'Virgin Islands U.S.',
		'YE' => 'Yemen',
		'ZM' => 'Zambia',
		'ZW' => 'Zimbabwe'
	);
	
	return $countries;
}
pcmemo
1622 gün önce

Cevap için teşekkür ederim. Aslına bakarsan bu mantığı biliyorum. Ama bu yolla 200 den fazla satıra if sorgusu girmek gerek.

Bu iş için bi fonksiyon gerektiği ortada, hatta her satırdaki value değerini de kendiğinden alması için başka şeyler de gerekiyor onu çözemedim.

jeneria
1622 gün önce

Bu linkteki kodları kullanarak siteye giren kullanıcının hangi ülkeden bağlandığını bulabilirsiniz.

Bulunan ülke bilgisi sayesinde selectin option değerlerinin valuesunu if sorgusu ile karşılaştırıp selected yazdırırsak istediğiniz sonucu elde edebilirsiniz.