aslında bu normal bir davranış, overflow: hidden ya da auto dendiğinde otomatik olarak gizleniyor içindeki elemanlar.
bu gibi durumlar için tooltip bunun içinde değilde bağımsız olarak body'nin içinde yer alan bir alanda olmalı.
fare ile ilgili elemana gelince farenin konumu (top, left) alınıp body'deki tooltip'e anlık olarak atanmalı.
ayrıca yine fare üstündeyken global bir değişkene tooltip'te görünecek değerler belirlenmeli, fare odağını çekince bu işlemleri sıfırlamalısın.
kodlar temiz olsa bir örnek verecektim ama belki bu teorik detay bir şeyleri farklı düşünmeni sağlayabilir.
npm run build dedikten sonra public klasörüne html, css ve js dosyaları çıkıyor. vercel'e ya da başka bir yere deploy ederken bu public klasörünün içindekileri deploy edeceksin, bunları herhangi bir hostingde de rahatça çalıştırabilirsin.
fonksiyon'da default olarak $wherearray = ""
yerine $wherearray = []
yaparsan problem çözülecektir muhtemelen. Çünkü execute()
metodu array ya da null bekliyormuş varsayılan olarak sen string geçiyorsun.
ben şu şekilde kullanıyorum. genel kullandığmı componentler için
./src/components
./src/components/shared
servisler, store ve utils için
./src/services
./src/stores
./src/utils
sayfalar içinde genel view
klasörünü kullanıyorum. Ama her sayfa için bir index.js
oluşturuyorum çağırması daha kolay olsun diye. Ayrıca sayfaya özel componentler varsa yine ilgili klasörde belirtiyorum.
./views
./views/home
./views/home/index.js
./views/home/components
bu tamamen kişisel tercih, ben bu şekilde kullanıyorum ama seninki de fena değil, farklı bir çok alternatifini de görebilirsin. Mümkün olduğunca requestleri tek bir yerden yönetirsin. Requestlerin tamamını service klasöründe mantıklı şekillerde export edip kullanırsın. Ayrıca store yönetimi için redux toolkit çok daha kolay bir düzen kurmanı sağlar.
id'ler yanlış yerde, ek olarak zaten seçtiğin elemanın text'ini almamışsın ama alsan bile NaN verecek aşağıdaki kodu çalıştırırsan anlarsın durumu
console.log( parseInt('ornek sayi : 34') )
yapacağın şey id'leri sayılara vermek. Yani;
<td>ornek sayi : <span id="hisse1">34</span></td>
<td>ornek sayi : <span id="hisse2">25</span></td>
<script>
for(i = 1; i <= 9; i++){
var bolme = 920 / parseInt(document.getElementedById("hisse" + i).innerText) //????
// diğer işlemler..
}
</script>
buyur dostum
<table border="1">
<thead>
<tr>
<th>MODEL ADI</th>
<th>MALAFA</th>
<th>TEL ÖLÇÜSÜ</th>
<th>TEL GRAM</th>
<th>TEL ADET</th>
<th>DÖKÜM</th>
<th>DÖKÜM ADET</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">
pc101
</td>
<td></td>
<td>130x130</td>
<td>90</td>
<td>220</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>200 TERS DOÇ</td>
<td>40</td>
<td>200</td>
<td></td>
<td></td>
</tr>
<tr>
<td>ADET</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td rowspan="2">
20
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
yapacağın şey $elemanlar
değişkeninde sanırım db'den kategorileri çekiyorsun, join ile urunler tablona bağlanacaksın, böylece sadece ürün olan kategorileri döndürecek join eşleşmesinden dolayı, fonksiyonda bir şey yapmaya gerek yok.
şöyle bir sorgu olabilir
select kategoriler.* from kategoriler
inner join urunler on urunler.kat_id = kategoriler.id
yani şöyle düşün, fonksiyonda parametre olarak geçtiğin elemanı değiştirmek istiyorsan ama onu geriye döndürmek yerine değerinin direk etkilenmesini istiyorsan kullanabilirsin, sonuçta fonksiyonun sadece onunla ilgili bir işlemi olmayabilir, ya da aldığın parametreye göre fonksiyon farklı bir işlem için değer döndürebilir ama alınan parametreninde bundan etkilenilmesi istenebilir.
kısaca referans aldığın değişkenin değerini etkiliyor bu şekilde kullanırsan, en basit örneği;
<?php
$text = 'hello';
function changeText(&$text) {
$text .= ' world';
}
changeText($text);
echo $text; // hello world
başka bir örnek
<?php
$numbers = [2, 3, 5];
function multiply(&$nums) {
$nums = array_reduce($nums, function($prev, $num) {
$prev[] = $num * 2;
return $prev;
}, []);
}
multiply($numbers);
print_r($numbers);
/*
Array
(
[0] => 4
[1] => 6
[2] => 10
)
*/
tabi bu olay sadece parametre geçmekle alakalı değil, örneğin şöyle kullanımlarıda var;
$text1 = 'hello';
$text2 = &$text1;
$text2 = 'deneme';
echo $text1;
$text2
oluşturulurken $text1
referansıyla oluşturuluyor, dolayısı ile $text2
değiştirince aslında referansı yani $text1
değişiyor. Bu tarz kullanımlara çok takılma, vakti gelirse zaten ihtiyacın olduğu bir noktada mutlaka kullanırsın :)
bunun için neden css kullanmıyorsun, özel bir sebebi mi var?
<div style="background: green"> ... </div>
ya da css değişkenleri;
<div class="content" style="--color: green"> .. </div>
<style>
.content {
background: var(--color, #000); /* 2. parametre fallback */
}
</style>
problem senden kaynaklı değil, genelpara.com'dan kaynaklı. client-side istekleri kabul etmediği için bu hatayı alıyorsun, yapabileceğin en mantıklı çözüm back-end tarafında bu isteği atıp client-side'a oradan dönmek.
corsanywhere gibi proxyleri kullanabilirsin ama production ürünü ise çok mantıklı değil haberin olsun :)