ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 29 Sep 2015, 20:27 
Offline
Meister

Registriert: 07 Jul 2008, 08:39
Beiträge: 219
Hallo,
ich öffne ein Formular in einem Popup. sende das Formualar mit jquery ab und im Controller wird dann über format.js die Antwort vom create.js.erb geliefert.


1
2
$("#new_contact")[0].reset();
window.close();

Es wird also das Formular resetted und das Popup geschlossen. Funktioniert.
ABER
ich möchte gerne danach in dem Fenster aus dem das Popup aufgerufen wurde im DOM den Eintrag mit



$( "#meindiv" ).append( "<p>Mein Inhalt</p>" );

an ein DIV anfügen. Das funktioniert leider nicht, weder wenn ich den Befehl vor dem Schliessen absetze noch nach dem Schließen. Ich denke mal, daß die create.js.erb nur für das Popup gültig ist und an das Hauptfenster gar nicht rankommt.
Gibt es einen Weg das hinzubekommen? Also Speichern, Popup schließen und DOM im Hauptfenster aktualisieren?
Ich arbeite mit Rails 2.3.4 und aktualler Jquery-Version


Nach oben
 Profil  
 
BeitragVerfasst: 30 Sep 2015, 06:43 
Offline
Lehrling
Benutzeravatar

Registriert: 28 Feb 2012, 21:58
Beiträge: 86
Wohnort: NRW
Heyho,

ist jetzt nicht ganz so leicht nach zu voll ziehen was du da machen möchtest weil man das Web-Frontend nicht sieht, aber ich würde mal sagen wenn du in deiner Anwendung eine Form befüllst und das absendest dann kannst du ja im backend auch was zurücksenden.
Im dem Fall das du auch JQuery's Ajax-Methoden verwendest kannst du auch davon ausgehen der Client auch auf eine Antwort vom Backend wartet und diesen Inhalt via Javascript in dein Div hinzufügen kannst.

Daher noch ein paar Fragen damit man (Ich) eine bessere Antwort geben kann:

Ist das Popup auch in deinem Hauptfenster oder auf einer anderen Seite ?
Machst du das via Ajax oder einfach nur über die ganz normale Form ?
Hast du mal über eine Speicherung der Formular Ergebnisse nachgedacht so das du sie via Javascript noch einmal abfragen kannst ?

Wenn ich das nicht richtig verstanden habe bitte ich um Korrektur. :)

vg Manchotix


Nach oben
 Profil  
 
BeitragVerfasst: 30 Sep 2015, 09:25 
Offline
Meister

Registriert: 07 Jul 2008, 08:39
Beiträge: 219
Danke für die Antwort.
Ich öffne das Popup so:



= link_to "Neue Notiz", {:controller => 'notices', :action => 'new', :kdnr => session[:customer]}, :class => 'item', :popup => ['Notizen eingeben', 'height=630,width=500,left=0,top=0']

In dem erscheinenden Fenster wird das Formular einfach über die new action angezeit.
Das speichern geht über Javascript:


1
2
3
4
5
6
7
8
9
10
11
12
$("#new_notice").submitWithAjax();
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})

jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return false;
};

nach dem Absenden geht es ja zur CREATE-Action und da habe ich im js.erb folgendes :


1
2
$("#new_notice")[0].reset();
window.close();

Das schließt das Formularfenster.
Danach würde ich gerne den gespeicherten Datensatz anzeigen lassen im Fenster aus dem das Popup geöffnet wurde.


Nach oben
 Profil  
 
BeitragVerfasst: 30 Sep 2015, 09:52 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Wenn ich mich recht erinnere, weiß ein Pop-Up nicht aus welchem Fenster/Tab heraus es aufgerufen wurde. Was du hast ist also auf den ersten Blick nicht möglich.

Um es trotzdem irgendwie zu schaffen, sehe ich spontan 2 Möglichkeiten:

  • Gebe dem Pop-Up beim öffnen eine Referenz auf das öffnende Fenster mit.
  • Benutze statt eines Pop-Ups ein "Modal", also ein überlagerndes div, welches aber noch immer bestandteil der gleichen Seite ist.

Aber beides ist nicht Rails- oder gar überhaupt Ruby spezifisch, daher würde ich dich bitten, weitere Fragen zu dem Thema in einem JavaScript-Forum zu stellen oder in einem das Web-Entwicklung im Allgemeinen thematisiert.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 01 Okt 2015, 15:27 
Offline
Meister

Registriert: 07 Jul 2008, 08:39
Beiträge: 219
Danke,
ich glaube das mit dem Modal wäre eine Idee....


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: