Inhalte von Webseiten [ERLEDIGT]

Xb2.Net von Boris Borzic

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Inhalte von Webseiten [ERLEDIGT]

Beitrag von Manfred »

ich stehe gerade vor einem Problem.
Ich setze mich mit javascript auseinander und sehe, das man damit die komplette Webseite mit "document." durchsuchen kann. Also alles was es nur gibt. Damit kann man dann über Classname, oder ID usw. alle Elemente finden und Inhalte auslesen von was weiß ich allem. Bekommt man eigentlich irgendwas zurück in xbt2net, mit dem man sowas auch machen kann? Bisher sehe ich nur, das die Eingabefelder über ThreadObject():getCargo() ermittelt werden können, aber das erscheint mir doch recht wenig.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Marcus Herz »

Javascript wird auf dem Client ausgeführt. Nicht auf dem Server.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

das weiß ich. Ich wollte nur ein Beispiel geben.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Das DOM - das Document Object Model - ist eine Struktur, die man im Client hat, und die quasi das, was man als Dokument (oder z.B. auch als XML-Struktur) hat, noch einmal als hierarchisches Objekt zur Verfügung stellt, auf dessen Elemente man gezielt zugreifen kann - auch, um sie beispielsweise live zu verändern. Das macht der Browser sozusagen als Service aus dem HTML-Dokument. Ohne das DOM wäre es sehr kompliziert, etwa mit JavaScript zu agieren.

Aber, wie Marcus angemerkt hast - Du bist ja der Server. Du hast also vorher das Dokument selbst geliefert. Wenn das Dokument ein Formular enthielt, bekommst Du was zurück. Sonst eigentlich nicht.

Wott du ju wonnt?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

hm, wie erklär ich es meinem Kinde?
Ich habe eine HTML Seite, die dynamisch erweitert wird. Es wird eine Listbox erstellt, die zu Anfang nur als Gerüst steht und dann über Javascript mit Daten gefüllt wird. Dann wird über einen ACTION Button eine Xbase Funktion aufgerufen um damit die Eingaben zu speichern. In der xbase Funktion komme ich aber (auf meinen ersten Blick) nur an die anderen Eingabefelder dran (mit Threadobjekt():getVar()), die ich direkt beim ersten Aufbau der Maske feste vorgegeben habe. In der dynamischen Listbox stehen aber Einträge, die ich in der xbase Funktion brauche um diese in eine Tabelle zu speichern. Wenn ich in den Debugger vom Webbrowser aufrufe, dann kann dort über Javascript z.B. alles durchlaufen und durchsucht werden. Deshalb ja meine Frage, ob xb2net evtl. auch das komplette DOM übergeben bekommt, ich es aber nicht in der Klasse finde, weil ich nicht weiß wo ich suchen muß. Ansonsten müßte ich statt des Action Buttons einen Button einbauen, der ein javascript aufruft, in dem dann die Listbox ermittelt und umgewandelt wird und dann evtl. als JSON Objekt oder was weiß ich an die Xbase Funktion übergeben wird, die dann damit weiter agieren kann. Nur, die Erfahrung hat mir gezeigt, immer wenn ich mir etwas tolles kompliziertes gebaut habe, kam von irgendwo ein Tipp:" das geht doch viel einfacher, mach das doch einfach nur so und so." :lol:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Hallo, Manfred.

Deine Listbox (also Dein "select"-Input) sollte einen Namen und/oder eine ID bekommen. Der Wert, der gewählt wird, ist über oClient:GetVar(<Name>) abrufbar (oClient oder ThreadObject()). Aber Du brauchst den Namen bzw. die ID.

Code: Alles auswählen

<form>
...
<select name="MeinSelect">
* Elemente
</select>
...
</form>
Das ist unabhängig davon, ob das Element dynamisch eingesetzt wird oder bereits mit dem HTML kommt. Wenn Du das Formular serverseitig auswertest, enthält "oClient:GetVar("MeinSelect") den gewählten Wert.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

Hi Tom
und das scheint der Irrtum zu sein. Alles ist gegeben, aber es wird NIL zurückgeliefert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Hallo, Manfred.

Ich nutze das intensiv; es ist eine Basistechnologie. Vergibst Du Namen oder IDs? Hier ist die Doku zu ThreadObject():GetVar:
getvar.png
getvar.png (43.95 KiB) 4203 mal betrachtet
Was bekommst Du, wenn Du GetVar() ohne Parameter abfeuerst (dann müsstest Du eine Liste mit allen Variablen und deren Inhalten bekommen)? Oder ein bisschen mit dem zweiten Parameter spielst?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

Hi Tom,
ich vergebe Namen ID Class
das hier habe ich versucht
das würde auf die ID gehen

Code: Alles auswählen

cWert           := ThreadObject():GetVar("umlauf_auswahl",VAR_QUERY)
          cWert           := ThreadObject():GetVar("umlauf_auswahl",VAR_CONTENT)
          cWert           := ThreadObject():GetVar("umlauf_auswahl",VAR_ANY)
Es gibt immer NIL als Ergebnis. Was mache ich wohl verkehrt?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Hol Dir mal die Liste, also GetVar() ohne Parameter.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

ergibt ein leeres Array
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Mmh. Bist Du im richtigen Thread? Das ist jetzt echt stochern im Trüben. Aber wenn ich per Submit/GET ein Formular zurückbekomme, erhalte ich vom Client-Objekt die Inhalte der Formularvariablen über oClient:GetVar(), genau wie ich die über SetCargo für die Response gesetzten Daten dort über GetCargo abrufen kann (Achtung, das ist nicht dasselbe!). Ist das Form(ular) ordentlich formatiert? Siehst Du die "name"-Zuweisung der Variablen im Quelltext, wenn Du den im Browser öffnest?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

Ob ich im richtigen Thread bin? Wie prüfe ich das? Kann man auch im falschen thread sein? Wie macht man das?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Indem Du Dir beispielsweise ThreadObject():ClassName() anschaust. Wenn die Antwort "xbHttpThread" lautet, bist Du richtig. Wenn die Antwort nur "Thread" lautet, bist Du irgendwo (oder die Session ist geschlossen). Aber die anderen Fragen waren eigentlich wichtiger. Bist Du Dir sicher, dass Dein Formular sauber aufgebaut ist? Sieht man die Namenszuweisungen der Variablen im Quelltext?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

es wird xbHTTPRequest zurückgeliefert.
Und die namenszuweisungen sind bestimmt vorhanden, sonst könnte ich die einzelnen Elemente nicht über javascript ansprechen!?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Du bist eine Ebene zu tief. HttpRequest ist ein Kind von HttpThread.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

nee, nur etwas schääl auf den Augen. habe mich in der Zeile vertan. Es kommt xbHTTPThread heraus. :roll:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Und die namenszuweisungen sind bestimmt vorhanden, sonst könnte ich die einzelnen Elemente nicht über javascript ansprechen!?
Dann nochmal. Ist das Formular sauber formatiert (<form>-Tags geschlossen)? Gibt's ein Submit innerhalb der <form>-Tags? Solche Sachen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

der Quelltextanzeiger vom FF meldet keine Fehler. Innerhalb des Form gibt es ein Submit. das ist ja der Button, der für Speichern sorgen soll
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Gibt es nur diese ominöse Listbox oder auch noch andere benannte Formularelemente?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

alles ist durchbenannt. ID Name. Und die Eingabefelder finde ich ja auch über :getvar("name").
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Das widerspricht Deiner Mitteilung, GetVar() ohne Parameter würde ein leeres Array liefern.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

was soll ich sagen? Ich weiß nicht weiter.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Inhalte von Webseiten

Beitrag von Tom »

Hallo, Manfred.

Es ist nicht möglich, dass Dir ThreadObject():GetVar("name") den korrekten Inhalt von "name" liefert und in der nächsten oder vorigen Zeile ein leeres Array, wenn Du es ohne Parameter (also ThreadObject():GetVar()) ausführst. ThreadObject():GetVar() listet alle Variablen und deren Inhalte auf, die mit der Response kamen.

Wäre es Dir möglich, ggf. eine verkürzte Fassung Deines Formulars zur Verfügung zu stellen, einschließlich des Codes, der die Listbox bestückt? Wenn Du das nicht öffentlich machen willst, notfalls auch per PN - ich würde mir das dann morgen in meinem eigenen System anschauen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Inhalte von Webseiten

Beitrag von Manfred »

Tom,
was soll ich sagen? Ich habe es gerade ausprobiert.
threadobject():getvar()-> {}
threadobject:getcar("bezkurz") -> "test" das ist der Wert, der im Inputfeld steht
Ich glaube das Thema hatte ich mit Martin schonmal durchgekaspert.
wenn ich :getcargo() mache, dann kommen etliche Angaben zurück.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten