webmaster resource
+ Webmaster Forum von Webmaster-Resource.de » Webcoding » HTML, CSS und Javascript (Moderator: Christian Felken)
|-+ javascript/ajax: Problem radio-button übergabe
Username:
Password:

Seiten: [1]
Topic Tools  
Read 21. November 2007, 22:58:29 #0
poppihasi

javascript/ajax: Problem radio-button übergabe

CODE JAVASCRIPT/ AJAX (im head):

[..]
// Create a function that will receive data sent from the server
   ajaxRequest.onreadystatechange = function(){
      if(ajaxRequest.readyState == 4){
         document.umfrage01.time.value = ajaxRequest.responseText;
      }
   }
   var image = document.getElementsByName('image').value;
   var queryString = "?image=" + image;

   try {
      ajaxRequest.open("GET", "umfrage/umfrage-beliebtheit.php" + queryString, true);
      alert("Deine Stimme wurde gezählt");
   } catch (e) {
      alert("Daten konnten nicht eingetragen werden!");
   }
   ajaxRequest.send(null);

QUELLCODE (PHP-DATEI [reaquestsendende]):

<form name="umfrage01">
  <table cellpadding="0" cellspacing="0" class="tabelle00">
    <tr><td class="tabelle01">&nbsp;&nbsp;UMFRAGE 01</td></tr>
    <tr><td class="tabelle02">Wie findest Du<br>unsere Site?</td></tr>
    <tr><td class="tabelle03"><br class="highness01">
<input type="radio" name="image" class="ausrichtung" value="super">super<br><br class="highness01">
<input type="radio" name="image" class="ausrichtung" value="mittel">passt scho<br><br class="highness01">
<input type="radio" name="image" class="ausrichtung" value="schlecht">nicht mein Fall<br><br class="highness01"></td></tr>

    <tr><td><br class="highness01"></td></tr>
    <tr><td align="right"><input type="button" class="vote" value="" onclick="ajaxFunction();">&nbsp;</td></tr>
  </table>
</form>

PROBLEMBESCHREIBUNG:

Die Php-Datei "umfrage/umfrage-beliebtheit.php" [requestempfangende] führt es korrekt aus. In ihr sollte der eingehende Wert
"$image = $_GET["image"]; "
in eine DB geschrieben werden.

Es führt definitiv den Schreibvorgang aus, aber die Variablenübergabe der AJAX-Funktion an das PHP Script funktioniert NICHT!
Ich nehme mal an, das es mit "document.getElementById" und "document.getElementsByName" zusammenhängt. Also über eine id kann ich das nicht machen, da sonst alle drei Radio-Buttons ausgewählt werden können (id muss ja eindeutig sein - so wäre die bezeichnung id="image01", id[2] = "image02" usw.). Will aber , dass immer nur eine Auswahl getroffen werden kann. Also nimmt man doch "name" .... nur so funktioniert es in dem Beispiel nicht.

Leider hab ich mich in Firebug net reindenken können, da ich keine Hilfetutorials finde. Wie könnt ich es (Grobanweisung) überprüfen, was
an Variablen übergeben wurde? Und was müsste ich ändern?

Ist übrigens ein schönes Beispiel mit Ajax Variablen zu übergeben, welche per PHP in eine Datenbank geschrieben werden können, OHNE die
Seite neu laden zu müssen.

THX
Offline  
Read 22. November 2007, 15:54:53 #1
poppihasi

Re: javascript/ajax: Problem radio-button übergabe

Also hab jetzt mal folgendes geändert:

javascript:
   var image01 = document.getElementById('image01').value;
   var image02 = document.getElementById('image02').value;
   var image03 = document.getElementById('image03').value;
   var image04 = document.getElementsByName('image04').value;

   
        alert("Deine Stimme wurde gezählt" + image01 + image02 + image03 + image04);

HTML:
<form name="umfrage01">
      <input type="radio" name="image04" id="image01" class="ausrichtung">super<br><br class="highness01">
      <input type="radio" name="image04" id="image02" class="ausrichtung">passt scho<br><br class="highness01">
      <input type="radio" name="image04" id="image03" class="ausrichtung">nicht mein Fall<br><br class="highness01"></td></tr>

</form>

Lass ich mir den ALERT ausgeben, zeigt es mir, dass alle radio's "on" sind (image01-image03). Image04 ist undefined.
Theoretisch kann doch nur ein radio "on" sein .....
Offline  
Read 22. November 2007, 17:39:47 #2
» тнє $υι¢ι∂є « ™

Re: javascript/ajax: Problem radio-button übergabe

nope!


<input name="radio" ...>
<input name="radio" ...>
<input name="radio" ...>
<input name="radio" ...>


dann kann nur einer angewählt werden....


also manchmal frag ich mich echt für was es referenzen gibt, dies ist wieder mal ein typischer "ich bin faul, macht ihr das mal" fall


Offline  
Read 22. November 2007, 22:46:35 #3
poppihasi

Re: javascript/ajax: Problem radio-button übergabe

Nein bin nicht faul!
Und auch nicht nach dem Motto macht es mal!

Hab außerdem genügend hier an Infos gegeben, um es so leicht wie möglich zu machen!
Sind nunmal nicht alle der TOP-Guru wie Du! Und ich bin auch kein professioneller Webprogrammierer, der den lieben langen Tag Zeit hat sich
mit der Materie zu beschäftigen.

Hab nun die Lösung des Problems gefunden und zusammengebastelt - und das hat mich wieder mal einen Tag gekostet!

Die Lösung lautet (folgendes in den javascript-code einbasteln):

[...]
   var image = new Array('super', 'mittel', 'schlecht');
   var selection = document.umfrage01.image04;

   for (i=0; i<selection.length; i++)

     if (selection.checked == true)
           {
           var abgeben = image;
        document.getElementById('objekt01').innerHTML = '<br>&nbsp;&nbsp;Deine Stimme wurde gezählt.<br><br><br style="line-height:12px">';
        document.getElementById('objekt02').innerHTML = '<input type="button" class="ergebnis" value="" onclick="javascript:neuesfenster01();">&nbsp;';
           }


   var queryString = "?abgeben=" + abgeben;
   try {
      ajaxRequest.open("GET", "umfrage/umfrage-beliebtheit.php" + queryString, true);
   } catch (e) {
      alert("Daten konnten nicht eingetragen werden!");
   }
   ajaxRequest.send(null);


Also nochmal danke für keine Antwort und die freundliche Runterputzerei.
Verlasse dieses Forum nun wirklich. Hab andere Portale gefunden, wo ich net so zugetextet werde.

In diesem Sinne ....

Machts besser! *hust*
Offline  
Read 22. November 2007, 22:48:13 #4
poppihasi

Re: javascript/ajax: Problem radio-button übergabe

P.S:
Deine Antwort zeigt übrigens wieder, dass du dir das Problem nicht mal durchgelesen hast. Weil die AW die Du gegeben hast bezieht sich auf die einfache Übergabe wenn man es per submit() macht.

Aber okay - ich bin faul! Lächelnd
Offline  
Read 22. November 2007, 23:22:07 #5
» тнє $υι¢ι∂є « ™

Re: javascript/ajax: Problem radio-button übergabe

meine antwort bezog sich auf deine aussage
Zitat
Theoretisch kann doch nur ein radio "on" sein .....
....


Offline  
Read 08. Dezember 2007, 23:46:34 #6
Daniel

Re: javascript/ajax: Problem radio-button übergabe

Hallo, ich werfe mal so ganz einfach ein all-one-script in die Runde welches das ganze wohl auflöst
demo.php
Code:
<?php

if($_POST)
{
echo 'Der Wert ist: '.$_POST[image];
die;
}

?>

<!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=utf-8" />
<title>Demo</title>
<script type="text/javascript">
var xhr_lade_daten = new Array;
function http() {
var http;
if (window.XMLHttpRequest)
{
http = new XMLHttpRequest();
} else if (window.ActiveXObject)
{
http = new ActiveXObject("Microsoft.XMLHTTP");
}
  return http;
}
function lade_daten(target,parameter,endfunction,server,status)
/*
In der Endfunction : TD.innerHTML = xhr_lade_daten[i].responseText;
Beispiel Aufruf: lade_daten(false,'trackdetail='+id,'show_track_detail_html','url',false);
target -> ausgabe in den innerHTML von target, bei false rueckgabe an endfunction
parameter -> var1=1&var2=2
endfunction -> Funktionsaufruf nach Erhalt der Daten  ('starten'), der Funktion wird die Nummer des XML Array übergeben
server -> 'lesen_alles.php'  - Serverscript onder Datei
status -> Statusanzeige wärend des Ladens, true / false
ausgabe -> true / false / obj  - Rückgabe mit return data bei obj datane per eval in ein obj gewandelt
*/
{

var i = xhr_lade_daten.length;
if(i>10000){
xhr_lade_daten.shift();
var i = xhr_lade_daten.length;
}

xhr_lade_daten[i] = http();
xhr_lade_daten[i].open("POST", server, true);

xhr_lade_daten[i].onreadystatechange = function(){
if(xhr_lade_daten[i].readyState==4){
if(xhr_lade_daten[i].responseText=='1001')
{
alert('Keine Rechte');
return false;
}
if(target){
eval(endfunction+"('"+i+"','"+target+"')");
}else{
eval(endfunction+"('"+i+"')");
}
}
}
xhr_lade_daten[i].setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr_lade_daten[i].send(parameter+'&aufruf_nr='+i);
}
function ausgabe(i)
{
alert(xhr_lade_daten[i].responseText);
}
function senden()
{
if(document.umfrage01.image[0].checked)
{
var daten = document.umfrage01.image[0].value;
}
if(document.umfrage01.image[1].checked)
{
var daten = document.umfrage01.image[1].value;
}
if(document.umfrage01.image[2].checked)
{
var daten = document.umfrage01.image[2].value;
}
lade_daten(false,'image='+daten,'ausgabe','<?php echo basename($_SERVER[PHP_SELF]);?>',false);
}

</script>
</head>

<body>
<form name="umfrage01">
  <table cellpadding="0" cellspacing="0" class="tabelle00">
    <tr><td class="tabelle01">&nbsp;&nbsp;UMFRAGE 01</td></tr>
    <tr><td class="tabelle02">Wie findest Du<br>unsere Site?</td></tr>
    <tr><td class="tabelle03"><br class="highness01">
<input type="radio" name="image" class="ausrichtung" value="super">super<br><br class="highness01">
<input type="radio" name="image" class="ausrichtung" value="mittel">passt scho<br><br class="highness01">
<input type="radio" name="image" class="ausrichtung" value="schlecht">nicht mein Fall<br><br class="highness01"></td></tr>
    <tr><td><br class="highness01"></td></tr>
    <tr><td align="right"><input type="button" class="vote" value="OK" onclick="senden();">&nbsp;</td></tr>
  </table>
</form>


</body>
</html>



Offline  
Read 08. Dezember 2007, 23:52:29 #7
Daniel

Re: javascript/ajax: Problem radio-button übergabe

Achso, für die harten Progger unter euch, das geht auch mit einer Schleife wenn mal ein paar mehr Radios da sind....
Code:
for(var i=0;i<document.umfrage01.image.length;i++)
{
   if(document.umfrage01.image[i].checked) var daten = document.umfrage01.image[i].value;
}


Offline  
Seiten: [1]
Gehe zu: