ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
526
526
EMPFEHLEN
-
Hallo Leute,
ich glaube es ist mein erster Beitrag in diesem Bereich. Für ein neues Projekt komme ich ohne Ajax nicht aus, deshalb habe ich es mir heute einmal angesehen und bin gleich auf ein Problem gestoßen, welches sicher einfach zu lösen ist.
Ich möchte ein Element in einer Schleife ansprechen, nur wie? 2 identische id-namen dürfen nicht existieren und über den Namen komme ich auch auf keinen grünen Zweig.
Ich habe ein Formular, welches 2 Eingabefelder in beliebiger Wiederholung haben kann, durch JS gelöst.
im 1. Eingabefeld wird eine Nummer eingegeben und im 2. Feld soll automatisch der Name erscheinen.
Im Folgenden einmal meine Code gekürzt auf das Wichtigste.
Hier einmal mein Ajax/ JS Code:
In der func.php steht nur folgendes:PHP-Code:<script type="text/javascript">
<!--
function clone_this(objButton)
{
if(objButton.parentNode)
{
tmpNode=objButton.parentNode.cloneNode(true);
objButton.form.appendChild(tmpNode);
for(j=0;j<objButton.form.lastChild.childNodes.length;++j)
{
if(objButton.form.lastChild.childNodes[j].type=='text')
{
objButton.form.lastChild.childNodes[j].value='';
break;
}
}
objButton.value="entfernen";
objButton.onclick=new Function('f1','this.form.removeChild(this.parentNode)');
}
}
function createXMLHttpRequest() {
var ua;
if(window.XMLHttpRequest) {
try {
ua = new XMLHttpRequest();
} catch(e) {
ua = false;
}
} else if(window.ActiveXObject) {
try {
ua = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
ua = false;
}
}
return ua;
}
var req = createXMLHttpRequest();
function sendRequest(Feld) {
req.open('get', 'site/func.php?s='+ Feld);
req.onreadystatechange = handleResponse;
req.send(null);
}
function handleResponse() {
if(req.readyState == 4){
document.getElementById('inhalt').value = req.responseText;
}
else
alert("loading" + ajax.readyState);
}
//-->
</script>
Mein Formular sieht folgendermaßen aus:PHP-Code:$result = mysql_query("SELECT name FROM `order` WHERE `nummer` = '".$_GET['s']."'; ");
$row = mysql_fetch_object($result);
echo($row->name);
Ich hoffe jemand hat eine Rat für michHTML-Code:<div> <input type="text" name="Artnr[]" onblur="sendRequest(this.value)" size="20"> <input type="text" name="Artname[]" id="inhalt" size="20"> <input type="button" value="noch eins" onclick="clone_this(this)"> </div>

//edit: Ich habe mir gedacht, ich kann beim clonen ja einfach die ID von dem betreffenden Input-Feld ändern, mittels:
Jedoch macht er es dann auch gleich für das Folgende.PHP-Code:document.getElementById('inhalt').id='old';
//edit: Das Verstehe ich nicht, mit einem Mal klappt der Befehl mit dem ID-Wechsel doch
Geändert von Steusi (15.07.10 um 13:51 Uhr)
Gruß Steusi
Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
PHP-Code:$fehler = "dummer Tippfehler";
echo("Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!");
-
Hi,
wenn sich die Positions des Ausgabe-Textfeldes nicht ändert und dieses immer an der zweiten Stelle steht, könntest du dich über den Dokumentenbaum und die Methode getElementsByTagName dorthin hangeln.
Beispiel:
HTML
Code :1 2 3 4 5
<div> <input type="text" name="Artnr[]" onblur="sendRequest([B]this[/B])" size="20"> <input type="text" name="Artname[]" id="inhalt" size="20"> <input type="button" value="noch eins" onclick="clone_this(this)"> </div>
JS:
Die entscheidenden Stellen habe ich im Quellcode kommentiert.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
function sendRequest(Feld) { // Wert des Feldes übergeben req.open('get', 'site/func.php?s='+ [B]Feld.value[/B]); // Der callback-Funktion wird das Ausgabefeld als Argument übergeben req.onreadystatechange = [B]function(){ // Beim Ausgabefeld handelt es sich um das 2-te input-Element des Elternknotens handleResponse(Feld.parentNode.getElementsByTagName('input')[1]); };[/B] req.send(null); } // Die callback-Funktion erhält das Ausgabefeld als Argument function handleResponse([B]objField[/B]) { if(req.readyState == 4){ // Dem Ausgabefeld die Antwort zuweisen objField.value = req.responseText; } else alert("loading" + req.readyState); }
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
Ähnliche Themen
-
elemente ansprechen
Von tombo82 im Forum Javascript & AjaxAntworten: 20Letzter Beitrag: 26.02.09, 11:55 -
Elemente ansprechen
Von tombo82 im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 18.09.08, 10:16 -
externe Elemente ansprechen
Von Tiefschneetaucher im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.07.07, 13:19 -
alle elemente in array ansprechen
Von Guden im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 15.12.06, 15:53 -
Elemente ansprechen unter Opera
Von foerbyratte im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 13.08.04, 09:38





Zitieren

Login





