• 23-09-2009, 21:33:59
    #1
    merhaba arkadaşlar ajax ile post işleminde radiobutton la ilgili bir sorunum var . hep aynı değeri gonderiyor. seçili olan radio daki değer gelmiyor. belki ufak bir sorundur ama. bilemiyorum. kodlar aşagıda yardımıc olursanız cok sevinirim.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <title>grkn.net</title>
    <script>
    JavaScript: 
    function haber_ekle()
    {
       xmlHttp=ajax();
       if (xmlHttp==null)
       {
        alert ('Tarayıcınız Ajax Desteklemiyor!');
        return;
        }
        var baslik = document.getElementById('haber_baslik').value;
        var icerik = document.getElementById('haber_icerik').value;
    	var radio = document.getElementById('ali').value;
    
        var url='ajax2.php';
        var sc ='ali='+radio+'&haber_icerik='+icerik;
        xmlHttp.open('POST', url, true);
        xmlHttp.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
        xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
        xmlHttp.setRequestHeader('Content-length', sc.length);
        xmlHttp.setRequestHeader('Connection', 'close');
        xmlHttp.onreadystatechange=Guncelle;
        xmlHttp.send(sc);
    
    }
    
    function Guncelle()
    {
        if (xmlHttp.readyState==4 && xmlHttp.status == 200)
        {
            document.getElementById('sonuc').innerHTML=xmlHttp.responseText;
        }
    }
    
    function ajax()/* Bu fonksiyonu c/p ile alın ve olduğu gibi kullanın  bir zarar yaratmaz.. */
    {
        var xmlHttp=null;
        try
        {
            // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
        }
        catch (e)
        {
            // Internet Explorer
            try
            {
                xmlHttp=new ActiveXObject('Msxml2.XMLHTTP');
            }
            catch (e)
            {
                xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
            }
        }
        return xmlHttp;
    }
    
    </script>
    </head>
    <div id="sonuc">
    <body>
    <form id="HaberEkle" name="HaberEkle" method="post" action="javascript:void(0)">
      <p>Haber Başlığı :<br />
        <input name="haber_baslik" type="text" id="haber_baslik" />
        A
        <input name="ali" type="radio" value="A" />
        B
        <input name="ali" type="radio" value="B" />
        <br />
        Haber Metni :<br />
        <textarea name="haber_icerik" cols="45" rows="10" id="haber_icerik"></textarea>
        <br />
        <input name="ekle" type="submit" id="ekle" value="Ekle" onclick="haber_ekle();" />
      </p>
    </form>
    </body>
    </html>
     </div>
    ajax2.php

    <? 
    echo $_POST['ali']."</br>";
    echo $_POST['haber_baslik'];
    ?>
  • 26-09-2009, 12:03:45
    #2
    Ajax anket uygulaması kodlarken radiodan bir türlü değeri bende alamamıştım. Hep ilk radio inputun degerini dönderiyordu. Bu işi şu sekilde bir javascript koduyla çözdüm.

    			function anketoykullan(id, dondur){
    		
    				for(i = 1; i < dondur; i++){			
    				var deger = document.getElementById("secenek["+i+"]");			
    					if(deger.checked){
    						var oy = deger.value;
    					}			
    				}
    				
    
    			}
    while ile döngüye alıp <input type="radio" name="secenek['.$i.'] şeklinde yazdırıp gönder butonunda i yi ve anket idisini gönderiyordum.
  • 26-09-2009, 14:22:53
    #3
    skipfulun verdiği yöntemi kullanırsan,
    function anketoykullan(id, dondur){
    for(i = 1; i < dondur; i++){			
    	var deger = document.getElementById("secenek["+i+"]");			
    	if(deger.checked){
    		var oy = deger.value;
    		break;
    			}			
    	}
    }
    şeklinde kullanmanı öneririm.
    bununla beraber,
    var radio = document.getElementById('ali').value;
    satırı yerine
    var radio;
    for (var i = 0; i < form.ali.length; i++) {   
       if(form.ali[i].checked){
          radio = form.ali[i].value;
          break;
       }
    }
    kodlarını yazarak da sonuca ulaşabilrisiniz