PHP Inhalt aus Div Tag in Datenbank schreiben

wiked

Ensign
Registriert
Juni 2008
Beiträge
135
Tag an alle!

Ich habe eine dynamische Weboberfläche wo 3 div Container durch die Auswahl aus einem Dropdown gefüllt werden. Man wählt den Wert 1 aus dem Dropdown und die jeweiligen Werte die in der Datenbank in der selben Zeile stehen werden in den div Containern ausgegeben.

Mein Problem besteht nun darin, dass ich die Texte die in den DIVs stehen in eine Datenbank schreiben muss... nur wie?! Denn man kann ja nur input, select oder textarea felder auslesen oder?!


Hoffe ihr versteht die Problematik...
 
zauberwort: javascript

man fülle einfach beim laden der seite oder per anderen event (onchange der select aka "dropdown" box) den inhalt des divs in ein hidden formularelement und schicke das formular ab, entweder auf die oldschool methode formular.submit() oder man geht den web2.0 trend und macht das ganze per Ajax...


Codesnippet: (JS)
Code:
document.getElementById("DIV-ID").innerHTML = document.getElementById("HIDDEN FORM ELEMENT").value;
 
Mhh ja klingt plausibel nur passiert bei mir nichts :(

Code:
function hidden(){
document.getElementById("system").innerHTML = document.getElementById("mandant2").value;
}

HTML:
<div id="system"></div>

<input type="text" value="" id="mandant2">



Getestet unter IE und Firefox.
 
wann rufst du die hidden funktion auf?

mach doch mal testhalber einen <input type="button" value="test" onclick="hidden()" />

ach ja, ich vogel hab mich auch falschrum ausgedrückt...

probiers zusätzlich mal damit:

Code:
function hidden(){
document.getElementById("mandant2").value = document.getElementById("system").innerHTML;
}

sonst nimmt das div den inhalt vom input dingens an....

sorry, war mein fehler.
 
Zuletzt bearbeitet: (typo)
Okay funktioniert soweit jetzt auch :)
Das ganze habe ich jetzt beim onChange vom dropdown menü!
Nur wird beim ersten mal aufrufen gar nichts in das textfeld geschrieben und erst wenn man was anderes auswählt kommt das vorige!
 
lädst du den text ins div dynamisch, per ajax oder so?


wenn ja, müsste diese hidden() funktion in die onreadystatechange funktion mit rein...


das fürs erste mal laden kann man auch machen, entweder per <body onload="hidden()"> oder einfach relativ am ende des quelltextes (am besten über </body> - so machs ich immer)
Code:
<script type="text/javascript">
hidden();
</script>
 
Ja ich lade den Text dynamisch! In dem Dropdown gibt es IDs. Wenn man eine auswählt wird eine Datebankabfrage gestartet, die die Zeile sucht und in den 3 divs die anderen Spalten der Zeile ausgibt!

EDIT:
wenn ja, müsste diese hidden() funktion in die onreadystatechange funktion mit rein...

Jop genau so funktionierts, hätte mir eigentlich auch selber auffallen müssen!

Besten dank für deine Hilfe! Werd einen auf dich trinken am Abend ;)
 
Zuletzt bearbeitet:
dynamisch im sinne von ajax? also so klassisch mit

Code:
http.onreadystatechange = function(){
if(http.status == 200)
{
//tuwas?
}
}

wenn ja, dann bastel unter mein //tuwas einfach ein hidden(); mit rein, schon sollte es funktionieren...
 
Dynamisch im Sinne von:

Code:
function mandant() {
        var req;
        try {
                req = window.XMLHttpRequest?new XMLHttpRequest(): 
                new ActiveXObject("Microsoft.XMLHTTP"); 
        } catch (e) {
                //Kein AJAX Support
        } 
 
        req.onreadystatechange = function() {
                if ((req.readyState == 4) && (req.status == 200)) { 
                        document.getElementById('system').innerHTML = req.responseText;
                }
                document.getElementById("mandant2").value = document.getElementById("system").innerHTML;
        };
        var id = document.getElementById('dropdown').value;
        req.open('post', 'mandant.php');
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send('s='+ id); 
}

Aber könntest du mir bei meinem anderen Problem auch helfen *liebschau* KLICK
 
Zuletzt bearbeitet:
probiers doch mal so:

Code:
function mandant() {
        var req;
        try {
                req = window.XMLHttpRequest?new XMLHttpRequest(): 
                new ActiveXObject("Microsoft.XMLHTTP"); 
        } catch (e) {
                //Kein AJAX Support
        } 
 
        req.onreadystatechange = function() {
                if ((req.readyState == 4) && (req.status == 200)) { 
                        document.getElementById('system').innerHTML = req.responseText;
document.getElementById('HIDDEN FORM').value = req.responseText; //Tabs gehn leider nicht im Browser, sonst würd ichs sogar einrücken :P
                }
                document.getElementById("mandant2").value = document.getElementById("system").innerHTML;
        };
        var id = document.getElementById('dropdown').value;
        req.open('post', 'mandant.php');
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send('s='+ id); 
}

ich weiß nur nicht ob das die lösung deines problems ist...
wenn nicht, beschreib mal bissl näher, ich mach schnell mittagspause :P

zu deinem anderen problem: gerne, aber nach der pause^^
 
Das Problem mit dem Datenbank eintragen ist doch schon gelöst XD Hab ich das nicht geschrieben :freak:

Na dann hau rein und lass dir schmecken!
 
Zurück
Oben