zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden html hidden-array aus Formular via javascript füllen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 07.07.2011, 19:09
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.12.2010
Beiträge: 43
ZENeca befindet sich auf einem aufstrebenden Ast
Standard html hidden-array aus Formular via javascript füllen

Hallo Leute,

ich hänge mal wieder fest, für meine Begriffe ist das Kinderkram,
aber ich bekomme es einfach nicht hin und meine Recherche ist auch nicht erfolgreich

Ein einfaches Problem, ich möchte in einer Javascript funktion ein hiddenfeld des Formulars füllen, meine einfachster Ansatz ist wie folgt:

HTML-Code:
<script>
  funktion xyz()  {
     var old_ds = document.getElementById('mem_ds');
     old_ds.value[0] = 123;\n
     old_ds.value[1] = 456;\n";
  }
</script>

...der html Teil

<body>
  <form ......>

           .....

    <input type="hidden" name="ds_alt[]" id="mem_ds" value="">
    <input type=submit name="go" value="lass mal sehen">

            ....

  </form>
</body>
also, durauch überschaubares Problem,
und ich habe auch viele Varianten ausprobiert (an den verschiedensten Stellen mit leeren [], ohne [] etc).
aber nichts will funktionieren, wenn ich mir die Postvariable
nach submit anschaue hat er maximal nur das [0]-te element mit dem letzten
in der js-funktion übergebenem wert belegt.

wo habe ich da meine Blockade?
Das kann doch nicht so schwere sein! *heul

ich würde mich über einen kleinen Hinweis sehr freuen )

Danke und einen Lieben Gruß
ZEN

Geändert von ZENeca (07.07.2011 um 19:33 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 07.07.2011, 19:37
$("#mettbröttchen");
XHTMLforum-Mitglied
 
Registriert seit: 28.09.2010
Ort: Bremen
Beiträge: 448
zeji wird schon bald berühmt werden
Standard

Erstmal fehlt dir der Aufruf deiner Funktion xyz().

Ich frage mich jetzt allerdings was du überhaupt mit dem ganzen bewzecken möchtest.

Sag doch nochmal ein paar Sätze dazu...

Gruß
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 08.07.2011, 01:05
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.12.2010
Beiträge: 43
ZENeca befindet sich auf einem aufstrebenden Ast
Standard

Hallo Zeji,

erst mal besten Dank für dein Feedback

dachte aber, daß es hilfreich ist mein Anliegenben es auf das Nötigste einzudampfen
(nich mal den Funktionsaufruf habe ich aufgeführt,
weil der für das eigentliche Problem wohl eher unbedeutend ist,
habe ich den <body> doch auch nur sequentiell aufgeführt

erzähl mir was genaueres... wird echt schwierig und ich weiß nicht auf was es dir ankommt

ich versuch’s mal zu erklären, weiß nur nicht genau wo ich anfangen soll.

Es geht um die Verwaltung einer Datenbank, natürlich auch mit der Option, Datenbankenträge zu editieren.
Bei diesem Vorgang ist es immer vorteilhaft feststellen zu können, welche Inhalte sich wirklich geändert haben, um nur relevante Daten „upzudaten“. Zu diesem Zweck ist es ratsam den alten Datensatz als Referenz nicht zu verwerfen.

Jetzt der Kern:
Bei meiner Software verhält es sich so, daß ich das gesamtes Ergebnis der letzten Datenbankabfrage im Arbeitsspeicher (RAM) halte und dort unter anderem auch als zweidimensionale JS-Array.
(Mag ich so, da ich nicht wegen jedem Schlonz unnötig Verbindungen aufbauen will, ist immer langsamer als den hauseigenen, flüchtigen Speicher zu befragen)

Und die einzige Stelle festzustellen welcher der dargestellten Datensätze (durch Mausklick) angewählt wurde,
ist eben eine javascript Funktion (in meinem Beispiel xyz()). Dort habe ich auch Zugriff auf das (JS-Such-Ergebnis)Array
und würde gerne den ausgewählten Datensatz in ein hidden-object retten, um diesen in der nächsten Runde wieder aus dem Ärmel zu zaubern

Also: javascript-Array nach submit verfügbar haben

fürchte, das hat dir jetzt auch nicht wirklich weiter geholfen
Mit Zitat antworten
  #4 (permalink)  
Alt 08.07.2011, 04:15
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Ohne den Sinn und Zweck der ganzen Sachen kommentieren zu wollen, wie wär's mit Serialisierung?

(Der PHP-Auswertungsteil ist natürlich nicht obligatorisch.)

PHP-Code:
<?php

if (count($_POST) > 0) {
    
var_dump(json_decode($_POST['ds_alt']));
    exit;
}

?><!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>New</title>
        <script type="text/javascript" src="https://raw.github.com/douglascrockford/JSON-js/master/json2.js"></script>
        <script type="text/javascript">
        function xyz() {
            var demoObject = {a : '12', b : '34'},
                old_ds     = document.getElementById('mem_ds');

            old_ds.value = JSON.stringify(demoObject);
        }

        window.onload = function () {
            xyz();
        }
        </script>
    </head>

    <body>

        <form method="post" action="">

            <input type="hidden" name="ds_alt" id="mem_ds" value="">
            <input type=submit name="go" value="lass mal sehen">

        </form>

    </body>

</html>
Mit Zitat antworten
  #5 (permalink)  
Alt 08.07.2011, 09:05
Benutzerbild von Chris2011
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.01.2011
Beiträge: 301
Chris2011 befindet sich auf einem aufstrebenden Ast
Standard

mach doch einfach

Code:
document.getElementById("mem_ds").value = "test";
das wars doch schon
Mit Zitat antworten
  #6 (permalink)  
Alt 08.07.2011, 09:24
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Auch wenn ich diese Vorgehensweise nicht wirklich für sinnvoll erachte - du willst die Kontrolle an einen Ort delegieren, der nicht sicher ist - wäre eine einfache JS Lösung, wenn du alle Felder prüfst, ob value einen anderen Wert hat als defaultValue hat, wenn nein, dann leerst du beim submit diese Felder. Serverseitig kannst du dann erkennen, welche Datensätze sich geändert haben und welche nicht.
Mit Zitat antworten
  #7 (permalink)  
Alt 11.07.2011, 14:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.12.2010
Beiträge: 43
ZENeca befindet sich auf einem aufstrebenden Ast
Standard

So ihr lieben Leut,

danke für euer Engagement. Und da ihr euch so lieb bemüht habt, gebietet es die Höflichkeit sich noch mal zu äußern.

@ mermshaus

danke für die ausführliche Beschreibung, über diese Methode bin ich auch bei meiner ersten Recherche gestolpert und hatte gehofft,
daß ich die dafür nicht unbedingt brauche. Hatte ich bei meinen Treffern nicht auf anhieb verstanden, mit deinem Beispiel hat sich mir
jetzt schon eher der Sinn erschlossen, sehr interessant, für was wird das üblicher weise eingesetzt?

@protonenbeschleuniger

Das schnalle ich jetzt nicht ganz.
Du meinst, daß ich die Prüfung vor dem submit vornehme, die Felder, die sich nicht geändert habe leere
und somit nach dem submit nur die Daten übertragen wurden die sich auch wirklich geändert haben?
Ach ein sehr konstruktiver Lösungsvorschlag, das einzige Problem dabei wäre, wie ich ihm klar machen kann,
wenn sich ein Wert von Wert auf NULL geändert hat, das würde er doch so nicht erkennen
und ich könnte doch keine Werte mehr löschen, oder habe ich da einen Denkfehler drin?

@Chris2010,

ja, das war auch mein ursprünglicher Ansatz, aber dann habe ich ja ein nicht ...wie sagt man, ein diskretes Array?
also dann bekomme ich nach submit in meiner Ergebnisarray old[0] = ’t’, old[1] = ’e’ old[2] = ’s’ etc.
hilft scheinbar erst mal so nicht weiter, hatte sogar vor meinem Beitrag hier im Forum eine Lösung gefunden
die ganz bequem ein ganzes Javascript-Array übertragen hat, also in der js-Funktion:

old_ds.value = complete_search[val];

bei der Deklaration von complete_search[x][y]; -> x ist Zeile für einen gesamten Datensatz
z.B. complete_search[x][0] = 12, complete_search[x][1] = 7 complete_search[x][2] = ‘Hallo’ ,….

da kam dann nach submit so was wie: 12,7,’hallo’,..... raus
und in dem Fall war es dann auch so, daß z.B. old[3] = 7 oder old[6] = h beinhalteten

nachdem ich das dann bemerkt hatte, wollte ich es mit str_getcsv in ein Array splitten,
was natürlich einerseits mit Kanonen auf Spatzen geschossen ist und andererseits nicht mal funktioniert hat,
da mein Provider nur php 5.2 unterstützt und als ich das bemerken durfte hatte ich endgültig den Kanal voll
und habe es hier gepostet.
Aber im Prinzip war es doch der richtige Ansatz und die Lösung,
die sicher schon der ein oder andere Leser ahnt,
ist es dann diesen String einfach mit einem explode() zu zerlegen
...bin ich aber auch eher bei einer anderen Recherche drüber gestolpert

also: Noch mal besten Dank für eure Vorschläge und Mühe

CU
Zen

Geändert von ZENeca (11.07.2011 um 14:41 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 11.07.2011, 15:22
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ZENeca Beitrag anzeigen
@protonenbeschleuniger

das einzige Problem dabei wäre, wie ich ihm klar machen kann,
wenn sich ein Wert von Wert auf NULL geändert hat, das würde er doch so nicht erkennen
und ich könnte doch keine Werte mehr löschen, oder habe ich da einen Denkfehler drin?
Ja, du prüfst ob sich value von defaultValue unterscheidet. NULL gibt es da nicht, du meinst einen Leerstring, auch das wird damit eingeschlossen.

EDIT: jetzt weiß ich was du meinst. Stimmt, sicherer wäre ein Indikator dafür, dass sich ein Feld nicht geändert hat, z.b. -1 oder eben die Zeichenkette NULL
Mit Zitat antworten
  #9 (permalink)  
Alt 11.07.2011, 19:07
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ZENeca
Aber im Prinzip war es doch der richtige Ansatz und die Lösung,
die sicher schon der ein oder andere Leser ahnt,
ist es dann diesen String einfach mit einem explode() zu zerlegen
Das ist ziemlich genau das, was ich in #4 vorgeschlagen habe, nur ist JSON das geeignetere Format, weil es verlustfrei serialisiert.

Ich nehme an, was bei dir bei der Zuweisung eines Arrays an die value-Eigenschaft geschieht, ist einfach ein Type-Casting nach String (dasselbe wie etwa bei alert() mit Array-Parameter). Das ist nicht zwangsläufig verlustfrei. Aus Aus [12, 7, 'Hallo,Welt'] wird beispielsweise "12,7,Hallo,Welt". Du kannst dort später afaik nicht eindeutig unterscheiden, was zu welchem Array-Eintrag gehört.
Mit Zitat antworten
Sponsored Links
Antwort

Stichwörter
array, formularfeld, javascript

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular padding Problem im IE 7 unic CSS 8 18.01.2009 13:12
Problem beim ein/ausblenden von Spalten in Tabellen via CSS und JavaScript chrisol_76 CSS 2 21.07.2008 17:37
Edit HTML per JavaScript? E|H Javascript & Ajax 12 21.12.2007 23:41
Daten via Link an Formular übergeben Sukkulent Serveradministration und serverseitige Scripte 6 02.06.2007 15:49
Formular in Funktion und HTML aufteilen Schneemann Serveradministration und serverseitige Scripte 2 05.01.2007 12:00


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:08 Uhr.