@recepkaramanli61
Öncelikle ilginiz için teşekkür ederim. Şu anda dediğiniz gibi kullanıyorum.
Böyle cevap bulmanız biraz zor. Sistem bağlanamıyorsa bir sebebi vardır ve hata mesajı vermiştir. Onu da paylaşmanızda yarar var.
Türkçe karakter sorunu gidermek için aşağıdaki eski kodun yerine yeni kodu kullanın.
Eski Kod: return a > b ? direction : -1 * direction;
Yeni Kod: return direction ? a.localeCompare(b): -1 * direction;
Sonunda aradığımı buldum Codepen'de paylaşılmış isterseniz inceleyebilirsiniz
JavaScript Multi-Sort Array of Objects
Sen selectbox yerine arama yapılabilen selectbox istiyorsun anladığım kadarı ile.
Bunun için https://select2.org/selections kullanabilirsin.
Ben de kişisel searchbox yapmaya çalışıyordum.
Tayfun kardeşim sağ olsun html-css kısmını onun videosundan bakarak yaptım.
İşlerim nedeni ile yarım bırakmıştım. Renkleri falan değişmesi gerekebilir.
En azından işlevsel olarak fena değil. Aranabilir bulunan değerler arasında hareket edilebilir ve enter ile de seçilen değer kullanılabilir.
Kontrollerimi yaparken farkettim click eventi eklememişim.
ST VE STL değerleri boş bakış açını değiştirmen lazımdı aslında.
Her 1 dakika sonrasında istek atıp kontrol ediliyor.
Dikkat ettin mi bilmiyorum otomatik atılan istekler boş dönüyor.
Fakat zaman artıyor yani incelemem sonucu bilgisayar saati ile başlama saati arasındaki fark alınarak hesaplanıyor.
[
{
"matchDate": "2022-03-23T16:30:00Z",
"DT": "19:30",
"MD": "2022-03-23T19:30:00+03:00",
"HT": "Finlandiya",
"HTTR": "Finlandiya U19",
"AT": "Belçika",
"ATTR": "Belçika U19",
"L": "U19 Avrupa Şampiyonası Elit Tu"
}
]
Yerel saate göre 19:30'da başlamış maç şu anda 21:01 hesaplarsak 76. dakika oynanıyor.
let data = [
{
"date": "2021-03-23",
"price": 300
},
{
"date": "2021-03-24",
"price": 500
},
{
"date": "2021-03-22",
"price": 10
},
{
"date": "2021-03-21",
"price": 500
},
{
"date": "2021-03-13",
"price": 1500
},
{
"date": "2021-03-03",
"price": 250
},
{
"date": "2021-03-15",
"price": 1000
}
]
let sorting = data.sort((a,b)=> a["date"] > b["date"] ? 1: -1)
// sıralamanın tersi için '>' yerine '<' veya '1' ile '-1' yer değiştirmen yeterli.
console.log(sorting)
Sıralama sonrası çıktı.
[
{ date: '2021-03-03', price: 250 },
{ date: '2021-03-13', price: 1500 },
{ date: '2021-03-15', price: 1000 },
{ date: '2021-03-21', price: 500 },
{ date: '2021-03-22', price: 10 },
{ date: '2021-03-23', price: 300 },
{ date: '2021-03-24', price: 500 }
]
let testNames = [ {testName: 'test'}, {testName: 'test2'} ];
function createElement(testNames) {
const container = document.getElementById('container');
testNames.forEach(function(x){
let li;
li = document.createElement('li')
li.classList.add('li-item')
li.innerHTML += `<p>${x.testName}</p>`;
container.innerHTML(li)
})
}
testNames[0].testName = 'name changed';
createElement(testNames)
Ekrana yazdırmış olduğun değerleri tekrar güncellemen gerekiyor. Şimdi işlemi nasıl yaptırıyorsun bilmiyorum sadece dizi içindeki nesneyi değiştiriyorsan çalışmaz zaten.
Eğer tekrar foreach kullanıyorsan appendChild kullandığın için üstüne ekleme yapar o yüzden innerHtml kullanarak eski değerleri silmesini ve yeni değerleri yazmasını sağlarsın.
Uzman bir arkadaş farklı bir bakış açısı ile benden daha faydalı olabilir. Test edemediğim zaman kod hatası yapabailiyorum.
$table = [];
$bakiye = 0;
$id = 0;
while ($a = $harcamalar->fetch_array()) {
$id += 1;
$a["ID"] += $id;
$a["total"] = $a["quan"] * $a["price"];
$bakiye += $["total"];
$["bakiye"] = $bakiye; // ile
$table[] = $a;
}
function harcamalar($table, $n) {
if($n == "list") {
foreach ($table as $val) {
echo '<tr>
<th scope="row">'.$val["ID"].'</th>
<td>'.$val["name"].'</td>
<td>'.$val["quan"].'</td>
<td>'.$val["price"].'</td>
<td>'.$val["total"].'</td>
<td>'.$val["bakiye"].'</td> // Ben şimdilik buraya ekledim değerlendirmene göre tekrar düzenlerim.
</tr>';
}
} else {
// burasını tam anlayamadım bakiye bilgisini almaya çalışıyorsun sanki ama neden tablonun dışında?
}
}
harcamalar($table, "list")