Ben bi fotoğrafçılar için script yazıyorum . Bu açıdan yeniyim bi noktada takıldım . fotoğrafları listelettiğim yerde döngüm var veritabanından kullanıcının fotolarını çekiyorum . fakat her bir div de adet ve ebat girmesi için selectbox var ve altındaki inputa ona göre fiyat yazdırıyorum . Sıkıntım şurda fiyat yazdırırken döngüde olduğu için her inputa aynı şeyi yazıyor yani ilk divdekini . Ben her bir döngümde ayrı hesaplatıp veritabanına kaydetmek istiyorum bunu nasıl yapabilirim ?


GÜNCELLEME

buyur hocam örnek olarak şöyle açıklayım sorgumu yazdım döngümü oluşturdum

$sorgu = mysql_query("SELECT * FROM resim where username='$user'");  
while($icerik = mysql_fetch_array($sorgu)) {
    <div>
        <img src="<?php echo $icerik['url'];?>">   (divimi de oluşturdum)
...

Adet seçme yeri --

<form>   
    <select name="" id="" onChange="carp((this.value2))"> tarzında bi selectim var  
        <option value="10"> <option value="20"> olsun
...

aynı şekilde adet girmek içinde select-optionum var .

    <input name="sonuc"> burayada hesabı yazıyor . tabi bunlar ajax ile hesaplanıyor 
</div>

Dışarda olduğum için örnek bi kod yazdım kendiminkine bakamadım ama . bu ilk divimde sıkıntı yok hesaplıyor fakat döngüdeyken ilkinden sonrakilerde hesaplama yapmıyor select çalışmıyor . bunun için ajaxta mı döngü yapıcam böyle bişey oluyor mu gerçekten googleda çok araştırdım ama bu tarz bişey bulamadım . mantığını oluşturamıyorum kafamda . döngü oluştuğunda her divde farklı hesaplamalar yapıp yazdırmak için nasıl bir yol izlemem gerekir . sizden istediğim bunun kodu değil de mantığı . şimdiden teşekkür ederim ne kadar açıklayıcı oldum bilemiyorum ki php de yeni sayılırım :)

soruldu: 09 Tem '14, 14:18

birkanesen's gravatar image

birkanesen
20556
cevap kabul oranı: 0%

değiştirildi: 10 Tem '14, 01:03

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288

Ornek kod vermen gerekecek

(09 Tem '14, 14:48) osmanraifgunes osmanraifgunes's gravatar image

Gerçek kodlarınızı, javascript kodlarınız ile birlikte eklemeniz daha mantıklı, iş yapan kodlar degil bunlar, sadece html kodları. Ajax içerisinde ne yapıyorsunuz, hesaplamaları nasıl yapıyorsunuz ve ekrana nasıl basıyorsunuz? bunların hiçbirini göremiyoruz bu kodlarda...

(10 Tem '14, 01:08) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Bu php dosyamın bir kısmı

<?php

$sorgu = mysql_query("SELECT * FROM resim where username='$user'");

while($icerik = mysql_fetch_array($sorgu)) {

 ?>

<div style="height:350px;width:250px; float:left; margin-left:5%;margin-top:1%; background-color:#FFFFFF;">
<div style="height:200px;"><img style="width:250px; height:200px;" src="<?php echo $icerik["url"]?>" /></div>
<span style="margin-left:20%; margin-top:10px;">Adet Seçiniz:</span>

<form action="" method="post">

<table>

  <tr>

    <td>Ebat</td>

    <td>

    <select name="stokid" id="stokid" onChange="carp((this.value2))" >

        <option value="15" selected>15x15 - 10.00 TL</option>

        <option value="20">20x20 - 20.00 TL</option>

        <option value="30">30x30 - 30.00 TL</option>

        <option value="40">40x40 - 40.00 TL</option>

        </select>

    </td>

  </tr>

  <tr>

      <td>Adet</td>

      <td><input type="text" name="adet" id="adet" value="1" onkeyup="carp()" /></td>

  </tr>

    <tr>

    <td>Ücret</td>

    <td><div id="yaz" style="margin-left:10px; float:left;"></div></td>

  </tr>
  </table>
   <input type="submit" value="FOTO BASTIR"/>
</form>

</div>
    </div>

             <?php }

 ?>

buda js dosyam :

function carp()

  {

  var sum=0;

  var x=0;

  var y=0;

  x=parseInt(document.getElementById('stokid').value);

  y = parseInt(document.getElementById('adet').value);

  sum =  x*y; 
var str_value =sum;
 $("#yaz").html(str_value)
  document.getElementById('ucret').defaultValue = sum;

  document.getElementById('ucret').Textarea = document.getElementById('ucret').defaultValue;

var str_value = $(this).val();
        $("#yaz").html(str_value)
  }
permanent link

cevaplandı: 10 Tem '14, 02:16

birkanesen's gravatar image

birkanesen
20556
cevap kabul oranı: 0%

// hangi stokid ve ya adet belli degil,
// aslında belli her zaman ilk yuklenenlerin degeri
x = parseInt(document.getElementById('stokid').value);
y = parseInt(document.getElementById('adet').value);

// her zaman ilk yuklenen div e yazar
var str_value = $(this).val();
    $("#yaz").html(str_value)
}

bu satırlarda yaz isminde div e yazdırıyorsunuz ama sayfanızda, bu id ile birçok div var. Aynı şey, stokid ve adet içinde geçerli. Hatanız burada. Yani her defasında hep ilk yüklenen verileri alıp, ilk yüklenen div lere yazıyorsunuz. Bu arada jquery kütüphanesini zaten kullanıyorsunuz, projenize eklemişsiniz, o zaman jquery nin avantajlarından yararlanın.

dinamik olarak oluşturduğunuz div lere unique id verin, ayrıca select ve input elemanlarına da bu id ile alakalı bilgi verin. Örneğin;

<select name="stokid" id="stokid_<?php echo $icerik["url"]?>" onChange="carp((this.value2))"
    data-yazid="<?php echo $icerik["id"]?>" >
...
<input type="text" name="adet" id="adet_<?php echo $icerik["url"]?>" value="1" onkeyup="carp()" 
    data-yazid="<?php echo $icerik["id"]?>" >
...

<div id="<?php echo $icerik["id"]/>" style="margin-left:10px; float:left;"></div>

Tabi burada başka sorunlar da var. Hangi select ve ya input tetiklenmiş onu bulmanız da gerekiyor. hangi select tetiklenmiş ise onun ile alaklı inputun degerini bulmalısınız ve ya tam tersi. Bunun içinde Carp fonksiyonuna tetiklenen select in ve ya inputun id sini yollayabilirsiniz.

Jquery .change ve ya .keyup kullanarak, tetiklenen nesneyi unique id si olmadan da yakalayabilirsiniz. Jquery işinizi bayağı bir kolaylaştırır.

Sizin su an yapmanız gereken, dinamik oluşan nesneleri ayrı ayrı dusunmek. Ve bu nesneleri sayfada bulmak.

NOT: kodlarınızı eklerken biraz daha özen gösterirseniz daha anlaşılır olur.

permanent link

cevaplandı: 10 Tem '14, 02:48

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288
cevap kabul oranı: 44%

değiştirildi: 10 Tem '14, 02:52

Cevabın için teşekkür ederim hocam daha iyi anlamamı sağladınız . E peki bu atadığımız unique idleri jqueryde nasıl çağırcaz ? carp fonksiyonunda aynı şekilde stokid mi yazıcaz? yada yeni unique değerimizi mi yazmamız gerekiyor ?

(10 Tem '14, 03:44) birkanesen birkanesen's gravatar image
1
<select onChange="carp((this.value2), this.id)"

gibi birşey yapabilirsiniz. ve ya class verip, örneğin;

<select class = "select">

jquery ile

$(".select").change(function(){
    var id = $(this).id;
    var value = $(this).val; 
    var input = $(this).closest("input");
    ...
});

gibi tetiklenen elemanın her özelliğini yakalarsınız. secilen select e en yakın input mantıgı ile o select ile ilişkili inputu yakalarsınız. Bu konuda biraz araştırma yapıp kodlarınızı biraz daha düzenlerseniz, takıldığınız yerde yardımcı olmaya çalışırız.

(10 Tem '14, 03:58) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×144
×41
×4
×2

Soruldu: 09 Tem '14, 14:18

Görüntüleme: 1,191 kez

Son güncelleme: 10 Tem '14, 03:58

powered by BitNami OSQA