php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.01.2011, 00:42  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard javascript add/delete row of inputs in forms

Hi,

Unter unterem Link habe ich die Beispielseite abgelegt. Es können über einen ADD Button Zeilen zum Formular hinzugefügt werden. Klickt man eine Zeile, wird diese wieder entfernt, und zwar egal wohin man in dieser Zeile klickt.

http://janeway.quicktunnels.net/adddel.php (bitte quelltext anzeigen lassen)

Jetzt soll A: die Zeile nur noch verschwinden wenn der REMOVE Button geklickt wird (also nicht beim click auf die Texteingabebox) ...

und B: brauche ich bei jedem remove als rückgabewert die nummer der Zeile die entfernt wurde, damit ich den korrespondierenden eintrag aus einem array löschen kann. oder falls das irgendwie anders geht, ich muss ein array mit der liste der zeilen synchron halten.

danke
__________________
mobilis in mobili

Geändert von Dilandau (21.01.2011 um 07:29 Uhr).
Dilandau ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.01.2011, 18:10  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Dilandau Beitrag anzeigen
Jetzt soll A: die Zeile nur noch verschwinden wenn der REMOVE Button geklickt wird (also nicht beim click auf die Texteingabebox) ...
Und warum weist du den Event Listener dann dem umschließenden span-Element zu und nicht dem Button?

Zitat:
Zitat von Dilandau Beitrag anzeigen
und B: brauche ich bei jedem remove als rückgabewert die nummer der Zeile die entfernt wurde, ...
Füge dem Click Event des Buttons einen zweiten Event Listener hinzu.
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 21.01.2011, 18:33  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard

> Füge dem Click Event des Buttons einen zweiten Event Listener hinzu.

sagt mir garnix, bin blutiger anfänger. ich habe aber eben eine umsetzung geschrieben, die funktioniert. die ist sicher schlecht und ich würde gerne wissen warum:

Code:
function addrow(author, country, id, where) {

    // make us a span with some content
    var el = document.createElement('span');
    el.innerHTML = '<input value="'+id+'" style="text-align:right;" type="text" readonly="readonly" size="6" ><input value="'+author+'" type="text" readonly="readonly" size="30" ><input value="'+country+'" type="text" readonly="readonly" size="10" >';

    // create and add button to our span
    var button = document.createElement("input");
    button.setAttribute("type", "button");
    button.setAttribute("value", "remove");
    button.setAttribute("id", id); // place selected ID in the button element
    el.appendChild(button);

    // add a linefeed
    el.appendChild(document.createElement("br"));

    // add all to our div
    Dom.add(el, where);

    // add on-click-remove functionality to button
    Event.add(button, 'click', function(e) {

      // remove item from choice
      for (var i = 0; i < choice.length; i++) {
          if (this.id == choice[i]) {
              choice.splice(i, 1)
          }
      }

      Dom.remove(this.parentNode);
    });
}

Event.add(window, 'load', function() {

  Event.add('add-element', 'click', function() {

    // get ID from dialog
    var id = 20;

    // check if this ID is in the selected array, if yes, return
    for (var i = 0; i < choice.length; i++) {
        if (id == choice[i]) {
            return;
        }
    }

    // append ID to array
    choice.push(id);

    // add row with info to screen (and place ID in the removebutton element)
    addrow('Heinz Ketchup',allitems[id],id, 'multirows');

  });
});

var choice = [36, 4, 8 , 20, 70, 100, 400];

var allitems = [
	"Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena", "Adrian", "Akron",
	"Albany", "Alexandria", "Alger", "Alledonia", "Alliance", "Alpha", "Alvada",
	"Alvordton", "Amanda", "Amelia", "Amesville", "Amherst", "Amlin", "Amsden",
	"Amsterdam", ...
];

function fillin() {
	for (var i = 0; i < choice.length; i++) {
		addrow('',allitems[choice[i]], choice[i], 'multirows');
	}
}

window.onload = fillin;
hier ist das ganze online:

http://janeway.quicktunnels.net/adddel_button.php

nur wenn man die zeile mit der ID "20" entfernt, kann man eine zeile mit der selben ID wieder anfügen.
__________________
mobilis in mobili

Geändert von Dilandau (21.01.2011 um 18:37 Uhr).
Dilandau ist offline   Mit Zitat antworten
Alt 23.01.2011, 16:52  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Dilandau Beitrag anzeigen
>

nur wenn man die zeile mit der ID "20" entfernt, kann man eine zeile mit der selben ID wieder anfügen.
Na das verstehe ich schon mal gar nicht, IDs sollten eindeutige Werte reprensentieren.

Ok davon abgesehen das ich mit Eventlistenern noch nicht gearbeitet habe, ich mache das auf eine andere Weise die auch gut funktioniert. Aber das Stichwort für dich könnte Target sein.

Code:
pEvent = pEvent || window.event;
    var target = pEvent.target || pEvent.srcElement;
Der Parameter pEvent wird der Funktion übergeben wo du das einsetzt. Über das target kannst du nun von dem Element ausgehen von dem du den Event abfeuerst. Das hat was mit durchblubbern zu tun. Ich kann dir das grad nicht so ganz erklären, aber da findest du sicher Erklärungen im Netz.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 24.01.2011, 18:34  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard

> Na das verstehe ich schon mal gar nicht, IDs sollten eindeutige Werte reprensentieren.

die zeile wird nicht in der DB verändert sondern nur zur auswahlliste hinzugefügt oder entfernt, es sollen aber einträge in der auswahlliste nur einem vorkommen dürfen. daher, wenn man da den user mit der ID 20 entfernt, kann man ihn wieder einfügen.
__________________
mobilis in mobili
Dilandau ist offline   Mit Zitat antworten
Alt 24.01.2011, 18:44  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Kann sein das ich da falsch verstanden habe, aber war und ist auch nicht wirklich deutlich bei dir raus zu lesen.

Dein Problem jedenfalls löst das was ich dir mit dem target schrieb.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem mit dynamischer URL in Javascript Dateien da.eXecutoR JavaScript, Ajax und mehr 4 28.09.2010 17:18
timing Probleme bzw Zusammenspiel PHP Javascript thica PHP Tipps 2009 2 19.02.2010 19:06
Wie lade ich ein Javascript nach einer AJAX Abfrage neu? da.eXecutoR JavaScript, Ajax und mehr 3 21.09.2009 11:15
[Erledigt] Ist das ok, wenn eine Webseite nur in PHP ist und komplett auf JavaScript coffeyn Off-Topic Diskussionen 15 21.08.2009 15:11
[Erledigt] JavaScript Weiche bei Formular? markus228 JavaScript, Ajax und mehr 1 09.08.2009 14:16
[Erledigt] Variable von Javascript mit 1x1px-Bild an PHP übergeben beneblack PHP Tipps 2009 18 03.05.2009 22:40
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] Javascript in PHP Aufrufen coyboc PHP Tipps 2009 17 10.04.2009 15:28
1101: 10x JavaScript und kein Ende ist abzusehen… Nikolaus 2.0 Adventskalender 2008 9 13.12.2008 20:11
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
PHP + Javascript + MYSQL socke PHP Tipps 2006 4 02.04.2006 22:02
Variable wird geändert bei Übergabe an Javascript PHP Tipps 2007 4 17.12.2005 16:53
JavaScript in JavaScript geschriebene Html-Datei einbinden. woods HTML, Usability und Barrierefreiheit 6 06.09.2004 18:33
Javascript HTML, Usability und Barrierefreiheit 5 31.08.2004 18:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript deleterow, rückgabewert javascript .remove, deleterow javascript, .append javascript, javascript add id, javascript remove input style=\text\, append row php, ajax delete funktion php, php add row, wie arbeitet deleterow(), javascript zeilen tabellen l, deleterow() alle zeilen, append row javascript, javascript deleterow mehrere bedingungen, javascript removerow, php $ row in javascript übergeben, add delete row javascript, javascript deleterow alle, ich brauche ein php strip mit java, javascript add row with id

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum