# mit onclick Variable übergeben



## AMED (31. Januar 2011)

Guten Tag,

muss eine javascript Passage verwenden und hätte nur eine kurze Frage:
Kann ich so irgendwie eine Variable senden? Vielen Dank!

VON:

<button type=\"button\" onClick="load('VARIABLE')">

NACH:

<script language="JavaScript"
  type="text/javascript">
<!--
var XMLHTTP = null;

if (window.XMLHttpRequest) {
  XMLHTTP = new XMLHttpRequest(); // IE 7, FF, Safari etc.
} else if (window.ActiveXObject) {
  try {
    XMLHTTP =  new ActiveXObject("Msxml2.XMLHTTP"); // IE 5
  } catch (x) {
    try {
      XMLHTTP =  new ActiveXObject("Microsoft.XMLHTTP"); // IE 6
    } catch (x) {
    }
  }
}

function load() {
var ida = "show.value";
  XMLHTTP.open("POST", "nachladen.php");
  XMLHTTP.onreadystatechange = output;
  XMLHTTP.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded");
  XMLHTTP.send("post_variable=" +VARIABLE);  <---------------------------------------------------
}

function output() {
  if (XMLHTTP.readyState == 4) {
    document.getElementById("daten").innerHTML = XMLHTTP.responseText;
  }
}
//-->
</script>


----------



## ComFreek (31. Januar 2011)

Ja kannst du.
Zum Beispiel wenn du den Text aus einem Eingabefeld (<input type="text" id="mytext" />) willst, dann kannst du folgendes schreiben:

```
var Text = document.getElementById("mytext").value;
XMLHTTP.send("post_variable="+encodeURIComponent(Text));
```
encodeURIComponent verhindert, dass bestimmte Zeichen die URL ungültig machen o.Ä.

Und bitte poste nächstes mal deinen Code in den entsprechenden Code-Tags, z.B. [code=javascript]JS-Code[/code]
Danke.


----------



## AMED (31. Januar 2011)

Vielen Dank für die schnelle Antwort!
Ich werde das nächste mal an die Code-Tags denken.

Gibt es die Möglichkeit, den value eines Button Elementes auszulesen, wenn die ID schon an mehrere Button Elemente identisch vergeben wurde? Beispielsweise über name oder über onclick?


----------



## ComFreek (1. Februar 2011)

Eine ID darf in einem HTML-Dokument nicht mehrfach auftauchen, sie muss eindeutig identifizierbar sein!
Über das Attribut "name" kannst du mehrere Elemente ausfindig machen:

```
var array = document.getElementsByName("name");
var firstElement = array[0];
```
Beachte, dass du ein Array rausbekommst, sprich du musst zuerst ein Element mit dem Index (hier 0) ansprechen!

Habe ich dich eigentlich richtig verstanden?


----------



## Quaese (1. Februar 2011)

Hi,

wobei auch hier zu beachten gilt, dass nicht jedes Element das *name*-Attribut unterstützt.

Nachstehende Elemente unterstützen das *name*-Attribut:
applet, select, form, frame, iframe, img, a, input, object, map, param, meta (allergings nicht als CDATA-Typ)

Ciao
Quaese


----------



## ComFreek (1. Februar 2011)

Siehe auch hier: http://de.selfhtml.org/html/referenz/attribute.htm


----------



## AMED (1. Februar 2011)

Irgendwie scheint es nicht zu funktionieren.
Es geht darum, das mittels einer php Schleife Buttons ausgegeben werden, die alle die gleiche ID haben müssen.
Jedoch soll beim draufklicken eine individuelle Variable ($row[$j][0]) übermittelt werden.

Button:

```
<button type=\"button\"  value=\"".$row[$j][0]."\" id=\"show\" name=\"show\" onClick=\"load()\">
```


js-Funktion:

```
function load() {
XMLHTTP.open("POST", "nachladen.php");
XMLHTTP.onreadystatechange = output;
XMLHTTP.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
XMLHTTP.send("post_variable=" +VARIABLEHIERHER);
}
```


----------



## ComFreek (1. Februar 2011)

Die ID *muss* aber immer eindeutig sein!
Ändere es so ab, dass jeder Button eine eigene ID bekommt.


----------



## AMED (1. Februar 2011)

Vielen Dank für eure Hilfe! Funktioniert hervorragend mit (document.getElementById). Die Id ist nun eindeutig!


----------

