şöyle dener misin;
<?php
$lokasyon=$db->query("SELECT * from tbl_haritalar_lokasyon WHERE Durum = 1 and MapID = ".$HaritaID)->fetchAll(PDO::FETCH_ASSOC);
$lokasyonlar = [];
foreach ($lokasyon as $loc) {
$lokasyonlar[] = "['{$loc['aciklayic_baslik']}', '{$loc['Latitude']}', '{$loc['Longitude']}']";
}
?>
<script>
var locations = [
<?=implode(',', $lokasyonlar)?>
];
</script>
yalnız eval
tam da bu gibi durumlar için var zaten. eval kullanmak istememenin sebebi nedir?
eval
kullanmak istemezsen, aşağıdaki gibi uzun bir fonksiyona ihtiyacın olacak :)
function calculate(input){
var f = { add : '+'
, sub : '-'
, div : '/'
, mlt : '*'
, mod : '%'
, exp : '^' };
f.ooo = [[ [f.mlt] , [f.div] , [f.mod] , [f.exp] ],
[ [f.add] , [f.sub] ]];
input = input.replace(/[^0-9%^*\/()\-+.]/g,'');
var output;
for(var i=0, n=f.ooo.length; i<n; i++ ){
var re = new RegExp('(\\d+\\.?\\d*)([\\'+f.ooo[i].join('\\')+'])(\\d+\\.?\\d*)');
re.lastIndex = 0;
while( re.test(input) ){
output = calc_internal(RegExp.$1,RegExp.$2,RegExp.$3);
if (isNaN(output) || !isFinite(output)) return output;
input = input.replace(re,output);
}
}
return output;
function calc_internal(a,op,b){
a=a*1; b=b*1;
switch(op){
case f.add: return a+b; break;
case f.sub: return a-b; break;
case f.div: return a/b; break;
case f.mlt: return a*b; break;
case f.mod: return a%b; break;
case f.exp: return Math.pow(a,b); break;
default: null;
}
}
}
console.log( calculate('4+7*8-4/2') )
Malesef php tarafında bu tarz bilgileri detaylı bir şekilde alamazsın. En fazla ip adresine göre konum alabilirsin oda şehir en fazla bölge olarak alınır. Google'ın yaptığı tek bir şey değil, Chrome tarayıcısı onların, android onların, gmail vb. uygulamalar herkesin telefonlarında kurulu :) Bırakta onlar da o kadarcık veriyi alsınlar zaten.
Şunu yapabilirsin, HTML5'in geolocation api'sini kullanıp koordinatları alırsın ve google maps'e bu koordinatları göndererek adres isteyebilirsin.
ilgili makale: https://prototurk.com/html/gelocation-api-kullanimi
valla yoğunum dostlar ama bu iki konuda da yakın zamanda video çekeceğim söz :) bu sayfa geçişleri için kullandğım fonksiyon şöyle bir şey;
function request(url, container, elem, menu, end, hide, hist) {
NProgress.start();
$.ajax({
url: SITE_URL + url,
beforeSend: function (request) {
if (hide) {
request.setRequestHeader("hide", hide);
if (hist) request.setRequestHeader("history", true);
}
},
success: function (response) {
if (elem) {
if ($(elem).data('remove')) {
$($(elem).data('remove')).removeClass('active');
}
}
if (elem && menu) {
$(menu).removeClass('active').filter(elem).addClass('active');
}
$(container).html(response);
reloadAjaxElements();
if (hist) {
$('a[href="' + SITE_URL + url + '"]').closest('ul').find('li').removeClass('active');
$('a[href="' + SITE_URL + url + '"]').parent('li').addClass('active');
}
Prism.highlightAll();
if (end !== true) {
var data = url + '||' + container;
if (hide) data += '||' + hide;
history.pushState(data, null, SITE_URL + url);
}
$('.popup').remove();
$('.full-container').removeClass('passive');
NProgress.done();
}
});
}
bunu derste daha net açıklayacağım yine de fikir olması adına :)
PHP iyelik eki ile ilgili bir sınıf vardı, inceleyebilirsin;
https://github.com/cengizhancaliskan/iyelik-eki
virgül ile ekletebilirsin. Örneğin;
$ids = [1,2,3,4,5,6,7,8];
$query = $db->prepare('INSERT INTO tablo_adi SET kolon_adi = :ids');
$result = $query->execute([
'kolon_adi' => implode(',', $ids)
]);
var_dump($result);
Daha sonra ayrıştırırken de FIND_IN_SET()
kullanabilirsin.
https://www.youtube.com/watch?v=MQoXH9yNUyo
belki alternatif olarak base64 formatında session'da tutulabilirsin yükleme işlemi yapmadan
mysql'de nasıl yapıyorsan php tarafında da aynı aslında.
$query = $db->query('INSERT INTO tablo_adi (id, ad, soyad) VALUES
(1, "Tayfun", "Erbilen"),
(2, "Test", "Test"),
(3, "Test2", "Test2")')->fetch();
reset.css, mevcut html etiketlerini tüm tarayıcılarda aynı varsayılan değerlerine ayarlar evet. Ancak senin sonradan yazacağın css kodları, tarayıcılar arası uyumsuzluğa sebep olabilir. Zira her css kodu her tarayıcıda uygulandığı gibi kullanılmıyor, bunları zamanla tecrübe ederek öğrenebilirsin. css hack diye araştırarak bir çok tarayıcı hilesine ulaşabilirsin :) en önemlisi kodlamanı yaptıktan sonra tarayıcılarda açıp kontrol et, sorunlarını buraya yaz birlikte yardımcı olalım.
tek yapman gereken .browser
class'ına max-width: 100%;
değerini eklemek :)