Daten abrufen und auslesen
DonMarco
- javascript
0 Jeena Paradies0 DonMarco0 Der Martin
0 DonMarco0 ChrisB0 Der Martin
0 DonMarco
Moin,
ich habe ein wahrscheinlich gar nicht so komplexes Thema zu klären, allein schon deswegen, weil es ganz einfach realisiert werden soll...:
Ich habe eine Website SomeSite.html, die ein Formular enthält und einen Button (neben dem normalen Formular Abschicken Button).
<script type="text/javascript">
function fillForm(){
// Laden von Daten von Seite
// Daten in Wrapper zurückgeben
// person.firstname
// person.lastname
var person.firstname = "John";
var person.lastname = "Doe";
var form = document.forms['FormName'];
form.elements['lastname'].value = person.lastname;
form.elements['firstname'].value = person.firstname;
}
</script>
<h1>Ein Formular</h1>
<form action="save.html" id="FormName">
<div>Lastname: <input type="text" id="lastname"/> </div>
<div>Firstname: <input type="text" id="firstname"/> </div>
</form>
<button onclick="fillForm();">Fill Form</button>
Mittels dieses Buttons (Fill Form) soll man das Formular automatisch mit Daten füllen können. Die Seite von der die Daten kommen, erfordert einen Login und daraufhin werden diese Daten an die Website zurückgeschickt und das Formular ausgefüllt (zum Beispiel in dem Skript FillForm()).
Das Ganze mutet ein wenig wie "Login With Facebook" an...
Der Endbenutzer soll quasi einfach nur den Button auf seiner Seite einbinden und durch Klick auf den Button werden seine Felder gefüllt (klar ist, dass die IDs für die Felder bekannt sein müssen).
Hoffe ihr könnt mir helfen...
Hallo,
var person.firstname = "John";
var person.lastname = "Doe";
Das Problem hier ist, dass diese Syntax mit Punkt nur mit Objekten funktioniert, du aber nirgendwo ein Objekt erstellt hast, versuche es mal so:
~~~javascript
var person = {};
person.firstname = "John";
person.lastname = "Doe";
oder gleich mit JavaScript Object Notation:
var person = {
firstname: "John",
lastname: "Doe"
}
Jeena
Danke, das hilft schon einmal zum Testen.
Mein Problem ist momentan viel mehr, dass ich die Daten von einer fremden Website bekomme. Die sie mehr irgendwie senden muss.
Die sendende Website arbeitet auf Jsp-Seiten und Spring. Dort würde ich normalerweise das Objekt Person einfach an die Map anhängen:
ModelMap map;
Person person = new Person();
person.addFirstname("John");
person.addLastname("Doe");
map.addAttribute("person", person);
return "redirect:/...someHtml.html";
Aber wie kann ich die Daten nun hier wieder (in someHtml.html - der Code oben) auslesen? Am Besten ohne JQuery, Ajax oder PHP.
Moin,
Danke, das hilft schon einmal zum Testen.
da habe ich leise Zweifel, denn ...
Mein Problem ist momentan viel mehr, dass ich die Daten von einer fremden Website bekomme.
Exakt das ist das Problem. Das verhindert nämlich die Same Origin Policy von Javascript, die dafür sorgt, dass JS nur auf Inhalte zugreifen kann, die von der eigenen Domain stammen (d.h. der Domain, von der das eigentliche Dokument geladen wurde). Ich sehe daher im Augenblick keine Chance, die Aufgabe mit JS zu lösen. Man möge mich eines Besseren belehren.
Aber wie kann ich die Daten nun hier wieder (in someHtml.html - der Code oben) auslesen? Am Besten ohne JQuery, Ajax oder PHP.
Dann mit irgendeiner anderen Technik - bevorzugt einer, die keinen derartigen Beschränkungen unterliegt. Wenn du dem Besucher nicht mit Flash oder gar einem Java-Applet kommen willst, wird's wohl auf eine serverseitige Lösung hinauslaufen, und da wäre PHP in meinen Augen das nächstliegende.
Ciao,
Martin
Exakt das ist das Problem. Das verhindert nämlich die Same Origin Policy von Javascript, die dafür sorgt, dass JS nur auf Inhalte zugreifen kann, die von der eigenen Domain stammen (d.h. der Domain, von der das eigentliche Dokument geladen wurde). Ich sehe daher im Augenblick keine Chance, die Aufgabe mit JS zu lösen. Man möge mich eines Besseren belehren.
Aber wie kann ich die Daten nun hier wieder (in someHtml.html - der Code oben) auslesen? Am Besten ohne JQuery, Ajax oder PHP.
Dann mit irgendeiner anderen Technik - bevorzugt einer, die keinen derartigen Beschränkungen unterliegt. Wenn du dem Besucher nicht mit Flash oder gar einem Java-Applet kommen willst, wird's wohl auf eine serverseitige Lösung hinauslaufen, und da wäre PHP in meinen Augen das nächstliegende.
Es gibt also keine Möglichkeit zum Beispiel den Response auszulesen?
Was sicherlich gehen würde, wäre wenn ich die Daten per GET rüberschicke:
...
return "redirect:/...someHtml.html?lastname=Doe&firstname=John";
Dann kann ich sie per php auf der Seite von someHtml.html auslesen (oder nicht)?
Aber mir wäre es lieber, wenn die Daten versteckt übermittelt werden würden (zumindest für den Normal-Bürger)
Wie macht denn Facebook es, dass es ein Formular mit den Facebookdaten füllt, wenn man auf den Facebook Button klickt?
Hi,
Mein Problem ist momentan viel mehr, dass ich die Daten von einer fremden Website bekomme.
Exakt das ist das Problem. Das verhindert nämlich die Same Origin Policy von Javascript, die dafür sorgt, dass JS nur auf Inhalte zugreifen kann, die von der eigenen Domain stammen (d.h. der Domain, von der das eigentliche Dokument geladen wurde). Ich sehe daher im Augenblick keine Chance, die Aufgabe mit JS zu lösen. Man möge mich eines Besseren belehren.
Einfach JSONP verwenden …?
MfG ChrisB
Hallo,
Ich sehe daher im Augenblick keine Chance, die Aufgabe mit JS zu lösen. Man möge mich eines Besseren belehren.
Einfach JSONP verwenden …?
cool, den Kniff kannte ich noch nicht, danke.
Das erfordert aber, dass der Fremdserver mitspielt in dem Sinn, dass er nicht nur JSON, sondern ein vollständiges JS-Statement oder Script liefert. Tut er das nicht (und darauf hat man ja in der Regel keinen Einfluss), habe ich wohl Pech gehabt.
Ciao,
Martin
Einfach JSONP verwenden …?
Das müsstest du mir näher erklären!