Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
05, 2008, 10:17:16 pm
42717 Mesaj 8081 Konu Gönderen: 17909 Üye
Son üye: bytasarimci
Turk-Php.Com Forum  |  Yardım Forumları  |  HTML & JavaScript & XML Forumu  |  AJAX  |  ajax problemi « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: ajax problemi  (Okunma Sayısı 841 defa)
fimeral
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 48


Üyelik Bilgileri
ajax problemi
« : 12, 2006, 10:15:25 pm »

bu forumdan aldığım bir kod
Kod:
function snifDoc(lyr)
{
    if(document.all)
    {
        return document.all[lyr];
    } else if(document.getElementById) {
        return document.getElementById(lyr);
    } else if(document.layers) {
        return document.layers[lyr];
    }
}

function makeRequest()
{
    if(window.XMLHttpRequest)
    {
        req = new XMLHttpRequest();
        if (req.overrideMimeType) {
            req.overrideMimeType('text/xml');
        }
    } else if(window.ActiveXObject){
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {}
        }
    } else {
        req = false;
    }
    return req;
}

function yolla()
{
    str = "";
    for(i=0;i<document.forms["namechange"].elements.length;i++)
    {
        if(document.forms["namechange"].elements[i].name) {
          str += document.forms["namechange"].elements[i].name +"="+ document.forms["namechange"].elements[i].value+"&";
        }
    }
     if(req = makeRequest())
     {
         req.onreadystatechange = getDat;
         req.open('POST', 'services/moderation/process/name_change.php', true);
         req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         req.send(str);
     }
}
function getDat()
{
    switch(req.readyState)
    {
        case 4:
                if(req.status == 200) {
                    snifDoc('uyari').innerHTML = "Başarıyla Değiştirildi";
                } else {
                    snifDoc('uyari').innerHTML = 'İşlem başarısız!';
                }
            break;
    } // END switch
}
şimdi bu kod gayet güzel çalışıyor ama bir sayfada birden çok formum var ve hepside farklı farklı işlevleri var, ve ben şöle bişi yapmak istiyorum, bu url'yi (services/moderation/process/name_change.php),  form adını (namechange) ve div adını (uyari) kod içinde sabit tutmak yerine onclick='yolla();' formdan uygun bir şekilde yollayıp  
Kod:
yolla(url, formname, div)
şekline çevirmek istiyorum, yardımlarınız için şimdiden teşekkürler
« Son Düzenleme: 12, 2006, 10:18:00 pm Gönderen: fimeral » Logged
bndrs
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 53



Üyelik Bilgileri WWW
Ynt: ajax problemi
« Yanıtla #1 : 12, 2006, 10:53:32 pm »

Selam,
O kullandığın örneği ben eklemiştim  "gayet güzel" çalışması normaldir Roll Eyes neyse bu kodu eklediğimde SavasTURK nickiyle site üyesiydim ama bazı üyelerin tavırlarından silmiştim o hesabı tekrar aynı hesabı açtım SavasTURK neyse ismimle devam ederim artık.

Şimdi yapmak istediklerine gelince form aksiyonunu parametre ile farklı form isimleri için kullanmaya yyönelik yapacağın düzenleme şu
Kod:
function yolla(frm, url)
{
str = "";
for(i=0;i<document.forms[frm].elements.length;i++)
{
if(document.forms[frm].elements[i].name) {
str += document.forms[frm].elements[i].name +"="+ document.forms[frm].elements[i].value+"&";
}
}
if(req = makeRequest())
{
req.onreadystatechange = getDat;
req.open('POST', url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(str);
}
}
Bu üstteki fonksiyonu verdiğim şekle çevirince iki parametre alabilecek ilki "frm" formun ismi ikincisi "url" formun hedefi
Kod:
    <form name="form1" onsubmit="return false;">      İsim:
      <input type="text" name="isim" />
      <br />      Soyİsim:
      <input type="text" name="soyisim" />
      <p>
        <input type="submit" value="Kaydet" onclick="yolla('form1', 'services/moderation/process/name_change.php');" />
      </p>
    </form>

div için bir şey yapmak zor ajax'da bug var bu konuyla ilgili örnek koddaki aşşağıdaki satıra dikkat et "req.onreadystatechange" bir fonksiyon değeri alıyor dikkat ettiysen ama bu değer atanırken fonksiyonda olmuş olsa parantezleri ekledinmi hatayla karşılaşıyorsun bu benden değil ajax'daki bugdan kaynaklanıyor.  MozillaDev sitesinde (AJAX:Getting_Started) bu bug şu sayfada https://bugzilla.mozilla.org/show_bug.cgi?id=238559 belirtiliyor zaten ama kodu karıştır belki başka bir yoldan div için ek birşeyler yapabilirsin.
Kod:
req.onreadystatechange = getDat;
« Son Düzenleme: 12, 2006, 11:37:15 pm Gönderen: bndrs » Logged

SavasTURK
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 21


Üyelik Bilgileri
Ynt: ajax problemi
« Yanıtla #2 : 12, 2006, 11:27:23 pm »

Selam,
Şimdi aklıma geldi aşşağıdaki şekli denersen belki div içinde parametre referans olarak erişebilirsin ama denemedim
fonksiyon bu haliyle bug'suz çalışırsa üç parametre alır;  ilki "frm" formun ismi ikincisi "url" formun hedefi üçüncüsü div'in ismi
Kod:
function yolla(frm, url, lyr)
{
str = "";
for(i=0;i<document.forms[frm].elements.length;i++)
{
if(document.forms[frm].elements[i].name) {
str += document.forms[frm].elements[i].name +"="+ document.forms[frm].elements[i].value+"&";
}
}
if(req = makeRequest())
{
req.onreadystatechange = function() {
    switch(req.readyState)
    {
        case 4:
                if(req.status == 200) {
                    snifDoc(lyr).innerHTML = "Başarıyla Değiştirildi";
                } else {
                    snifDoc(lyr).innerHTML = 'İşlem başarısız!';
                }
            break;
    } // END switch
}
req.open('POST', url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(str);
}
}
Logged

savasturk[et]gmail.com
fimeral
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 48


Üyelik Bilgileri
Ynt: ajax problemi
« Yanıtla #3 : 13, 2006, 06:15:13 am »

ikisinide çalıştıramadım Sad

son hali şu
Kod:
function snifDoc(lyr)
{
    if(document.all)
    {
        return document.all[lyr];
    } else if(document.getElementById) {
        return document.getElementById(lyr);
    } else if(document.layers) {
        return document.layers[lyr];
    }
}

function makeRequest()
{
    if(window.XMLHttpRequest)
    {
        req = new XMLHttpRequest();
        if (req.overrideMimeType) {
            req.overrideMimeType('text/xml');
        }
    } else if(window.ActiveXObject){
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {}
        }
    } else {
        req = false;
    }
    return req;
}

function yolla(frm, url, lyr)
{
    str = "";
    for(i=0;i<document.forms[frm].elements.length;i++)
    {
        if(document.forms[frm].elements[i].name) {
          str += document.forms[frm].elements[i].name +"="+ document.forms[frm].elements[i].value+"&";
        }
    }
     if(req = makeRequest())
     {
         req.onreadystatechange = function () {

switch(req.readyState)
    {
        case 4:
                if(req.status == 200) {
                    snifDoc(lyr).innerHTML = "Başarıyla Değiştirildi";
                } else {
                    snifDoc(lyr).innerHTML = 'İşlem başarısız!';
                }
            break;
    } // END switch
}


         req.open('POST', url, true);
         req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         req.send(str);
     }
}

ve formuda şu şekilde gönderiyorum
Kod:
<form name='namechange' onsubmit='return false;'>
  <table width='100%' border='0'>
    <tr>
      <td width='54%'>
        <div align='right'>
          <input type='text' name='ftpname' value='$row[1]' />
  <input type='hidden' name='id' value='$row[0]' />
          </div>
      </td>
      <td width='46%'><label>
        <div align='left'>
          <input type='submit' value='Gönder' onclick='yolla('namechange', 'services/moderation/process/name_change.php', 'uyari');' />
          </div>
      </td>
    </tr>
  </table>
</form>
ama hiçbir işlem yapmıyor
« Son Düzenleme: 13, 2006, 07:25:14 am Gönderen: fimeral » Logged
aziz
PHP Programcısı
****
Offline Offline

Mesaj Sayısı: 940



Üyelik Bilgileri
Ynt: ajax problemi
« Yanıtla #4 : 25, 2006, 06:52:04 am »

yukarıda AJAX kodu <script type="text/javascript> içinde çalıştırıp, gerekli "aJAX işlemi yapacağım" fonksiyonlarını çağırıyor musunuz form dan önce ?
Logged

Jabber:
xmpp:aziz@member.turk-php.com
Alihan ÇETİN
www.azizce.com
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.