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  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Table verschluckt das erste Formular
BeitragVerfasst: 27 Aug 2013, 13:54 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Hallo alle zusammen,

irgendwie kann ich mir das nicht so ganz erklären aber es wird jedesmal die erste Form in der Tabelle verschluckt. Hat da jemand eine Idee woran das liegen könnte?

Hier mal der Code:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<table class="table table-hover">

<thead>
<tr>
<th>#</th>
<th>spalt1</th>
<th>spalte2</th>
<th>spalte3</th>
</tr>
</thead>
<tbody>
<% @recipe.buendels.each.with_index do |buendel, index| %>
<tr data-toggle="collapse" data-target="#demo<%= index %>">
<td><%= index + 1 %></td>
<td><%= label(:post, buendel.aroma.name) %></td>
<td><%= label(:post, buendel.aroma.hersteller.name) %></td>
<td><%= label(:post, buendel.percent) %></td>

</tr>
<tr>
<td colspan="4" class="colapse-data" style="padding: 0; border-top: 0px" >
<div id="demo<%= index %>" class="collapse row-fluid" >
<div class="collapse-content row-fluid" >
<div class="span3">
Bewertung: <%= rating_for buendel.aroma, "name" %>
</div>
<div class="span3">
<% sum = 0.0 %>
<% buendel.aroma.aroma_references.each do |aroma_ref| %>
<% sum += aroma_ref.percent %>
<% end %>
<% if buendel.aroma.aroma_references.size > 0 %>
<% avg = (sum / buendel.aroma.aroma_references.size).round(1) %>
<% else %>
<% avg = "Keine Empfehlungen." %>
<% end %>
<div>Empfehlung:</div>
<%= link_to avg, buendel.aroma, :class => "text-error" %>
</div>
<div class="span5">
<%= form_for [buendel.aroma, AromaReference.new], :style=> "display:inline" do |f| %>
<div class="row-fluid aroma_entry">
<b>Prozent:</b>
<%= f.text_field :percent, :class => "span2", :placeholder => "0.0" %>


<%= f.submit "Empfehlen", :type => :image, :src => "/icon/filetypes.png" %>
</div>
<% end %>
</div>
<div class="span1">
<%= link_to "", buendel.aroma, :class => "icon-folder-open" %>
</div>
</div>
</div>
</td>
</tr>
<% end %>
</tbody>
</table>



Ich hoffe mir kann jemand helfen. Finde das ganze sehr merkwürdig weil nur das erste Formular irgendwie verschluckt wird. Alle anderen sind vorhanden.


Mfg


Zuletzt geändert von R3laX am 27 Aug 2013, 14:12, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 27 Aug 2013, 14:12 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Ich hab das ganze jetzt gefixt, aber auf eine sehr.. naja nicht wirklich elegante Art.

Ich hab einfach ein leeres Form hinzugefügt.

Das ganze sieht dann jetzt so aus:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<table class="table table-hover">

<thead>
<tr>
<th>#</th>
<th>spalt1</th>
<th>spalte2</th>
<th>spalte3</th>
</tr>
</thead>
<tbody>
<% @recipe.buendels.each.with_index do |buendel, index| %>
<tr data-toggle="collapse" data-target="#demo<%= index %>">
<td><%= index + 1 %></td>
<td><%= label(:post, buendel.aroma.name) %></td>
<td><%= label(:post, buendel.aroma.hersteller.name) %></td>
<td><%= label(:post, buendel.percent) %></td>

</tr>
<tr>
<td colspan="4" class="colapse-data" style="padding: 0; border-top: 0px" >
<div id="demo<%= index %>" class="collapse row-fluid" >
<div class="collapse-content row-fluid" >
<div class="span3">
Bewertung: <%= rating_for buendel.aroma, "name" %>
</div>
<div class="span3">
<% sum = 0.0 %>
<% buendel.aroma.aroma_references.each do |aroma_ref| %>
<% sum += aroma_ref.percent %>
<% end %>
<% if buendel.aroma.aroma_references.size > 0 %>
<% avg = (sum / buendel.aroma.aroma_references.size).round(1) %>
<% else %>
<% avg = "Keine Empfehlungen." %>
<% end %>
<div>Empfehlung:</div>
<%= link_to avg, buendel.aroma, :class => "text-error" %>
</div>
<div class="span5">
<form></form>
<%= form_for [buendel.aroma, AromaReference.new], :style=> "display:inline" do |f| %>
<div class="row-fluid aroma_entry">
<b>Prozent:</b>
<%= f.text_field :percent, :class => "span2", :placeholder => "0.0" %>


<%= f.submit "Empfehlen", :type => :image, :src => "/icon/filetypes.png" %>
</div>
<% end %>
</div>
<div class="span1">
<%= link_to "", buendel.aroma, :class => "icon-folder-open" %>
</div>
</div>
</div>
</td>
</tr>
<% end %>
</tbody>
</table>


Hat jemand eine Idee wieso das so ist? Ich benutze bootstrap. Ist nicht schön so.


Nach oben
 Profil  
 
BeitragVerfasst: 27 Aug 2013, 16:11 
Offline
Rubyist

Registriert: 09 Jun 2009, 18:00
Beiträge: 346
R3laX hat geschrieben:
]Ist nicht schön so.


Nee, ist nicht schön so. Einmal hab ich das Gefühl dass du Tabellen zum Layouten missbrauchst und dann haste gleich noch inline Styles. Egal: Was meinst du mit "Verschluckt?" Wird das Formular nicht in den HTML-Quelltext gerendert? Kann ich mir eigentlich nicht vorstellen. Oder wird's nur nicht angezeigt? Dann würde ich als erstes mal schauen ob das HTML, dass du generierst so überhaupt valide ist.

_________________
Ruhe jetzt, sonst hol ich meinen kleinen Bruder.


Nach oben
 Profil  
 
BeitragVerfasst: 27 Aug 2013, 20:06 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Achso.. ja stimmt ich sehe es.. nein das kommt bzw ist schon weg. Also das inline-style.

Nein ich missbrauche die Table nicht fürs Layout. Das ganze hat eben den Sinn das man das ganze aufklappen kann.

Und es ist tatsächlich so. Schaue ich in den Quelltext so verschwindet das erste <form></form> innerhalb der Table. Es existiert so nicht mehr im Quelltext. Irgendetwas muss beim rendern ja dann falsch laufen. Oder liegt es evt an twitter-bootstrap?


Nach oben
 Profil  
 
BeitragVerfasst: 27 Aug 2013, 20:49 
Offline
Rubyist

Registriert: 09 Jun 2009, 18:00
Beiträge: 346
R3laX hat geschrieben:
Nein ich missbrauche die Table nicht fürs Layout. Das ganze hat eben den Sinn das man das ganze aufklappen kann.

Hmm. Auf/Zuklappen kann man auch ohne Tabelle. Aber das ist hier nicht der Punkt
R3laX hat geschrieben:
Und es ist tatsächlich so. Schaue ich in den Quelltext so verschwindet das erste <form></form> innerhalb der Table. Es existiert so nicht mehr im Quelltext. Irgendetwas muss beim rendern ja dann falsch laufen. Oder liegt es evt an twitter-bootstrap?

Das sollte nicht vorkommen. Twitter Bootstrap hat damit eigentlich gar nichts zu tun - das lässt sich aber einfach überprüfen wenn du die Stylesheets einfach mal entfernst.

Wie hast du denn den Quelltext angeschaut? Im Browser, mit Firebug/Chrome Inspector oder mit curl oder ähnlich? Browser zeigen manchmal den Quelltext so an wie sie ihn geparst haben - nicht wie der Server ihn ausgeliefert hat.

_________________
Ruhe jetzt, sonst hol ich meinen kleinen Bruder.


Nach oben
 Profil  
 
BeitragVerfasst: 28 Aug 2013, 08:45 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Ich benutze SRWare Iron(Chromium). Ist fast das selbe wie Google-Chrom.

Ich untersuche die Seite bzw. das Element mit dem Standartwerkzeug das dabei ist. Wahrscheinlich ist das sogar der Web-Inspector.

Wenn ich mittels:
Rechte Maustaste --> Element untersuchen
nachschaue, so fehlt die Form.

Wähle ich jedoch den Reite Resource und schaue dann was vom Server ausgeliefert wird so findet sich das Form dort wirklich!!!

Super jetzt weiß ich schon mehr aber wieso macht der Browser soetwas? Sind Formś in Tabellen denn unerwünscht? Also durch die Einrückungen bin ich mir sicher das ich keine Fehler gemacht hab.

Sagt dir das etwas?

Naja das ganze ohne Table zu machen ist ein klein wenig aufwendiger, wäre aber wirklich kein Problem. Aber eine Lösung wäre besser zumal man ja wissen möchte wieso das denn so ist.

Firefox sagt übrigends nichts anderes. Dort verschwindet das erste Form auch.

mfg


Nach oben
 Profil  
 
BeitragVerfasst: 28 Aug 2013, 09:48 
Offline
Rubyist

Registriert: 09 Jun 2009, 18:00
Beiträge: 346
R3laX hat geschrieben:
Wähle ich jedoch den Reite Resource und schaue dann was vom Server ausgeliefert wird so findet sich das Form dort wirklich!!!

Super jetzt weiß ich schon mehr aber wieso macht der Browser soetwas? Sind Formś in Tabellen denn unerwünscht? Also durch die Einrückungen bin ich mir sicher das ich keine Fehler gemacht hab.


Nun, da gibt es eine Reihe von Möglichkeiten. Einmal könntest du irgendwo ein Javascript haben, dass das Form aus irgendeinem Grund entfernt. Zum anderen könnte dein HTML invalide sein. Einrückungen sind nicht alles, es gibt da noch nesting-fehler, eventuell nicht geschlossene Tags die implizit geschlossen werden etc. Browser sind inzwischen relativ gut darin, zu erraten was denn eigentlich gemeint war wenn sie invalides HTML vorgelegt bekommen - aber manchmal geht's einfach schief. (z.B. ist in deinem Fall denkbar dass ein leerer Form-Tag nicht erlaubt ist und er dann implizit entfernt wird).

Die einfachste Möglichkeit das rauszufinden ist den Quelltext, so wie er vom Server ausgeliefert wurde durch einen Validator validieren zu lassen, z.B. durch den des W3 (http://validator.w3.org/). Dann erst mal alle Fehler korrigieren und wenn das nichts bringt hat man irgendein obscures Problem.

Der Inspector zeigt den Quelltext an wie er gerendert wurde und nach allen Korrekturen und nachdem alles Javascript fertig ist. Das erklärt den Unterschied zwischen "View Source" und dem was du im Inspektor siehst.

_________________
Ruhe jetzt, sonst hol ich meinen kleinen Bruder.


Nach oben
 Profil  
 
BeitragVerfasst: 28 Aug 2013, 10:59 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Okey das muss man schon wissen.

Also das leere Form hab ich ja hingemacht damit das verschluckt wird statt das benötigte Form. Das war ja vorher nicht da und erfüllt jetzt nur noch den Zweck "geschluckt" zu werden.

Ich hab den Quelltext nun validiert und folgende Fehlermeldung bekommen:

Zitat:
Line 241, Column 26: document type does not allow element "FORM" here
<form></form>

The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).


Also darf man innmerhalb Tabellen einfach keine Form haben?


Zuletzt geändert von Quintus am 28 Aug 2013, 18:11, insgesamt 1-mal geändert.
Das ist kein Code, sondern ein Zitat. [code]-Tag durch [quote] ersetzt.


Nach oben
 Profil  
 
BeitragVerfasst: 28 Aug 2013, 11:06 
Offline
Schüler

Registriert: 01 Mai 2013, 18:34
Beiträge: 24
Ja ich hab die Bestätigung gefunden. Innerhalb einer <tr> darf man keine Form haben.. Dann werd ich das wahrscheinlich ändern.

Es funktioniert allerdings nach dem Fix von mir.. Merkwürdig.


Nach oben
 Profil  
 
BeitragVerfasst: 28 Aug 2013, 11:43 
Offline
Rubyist

Registriert: 09 Jun 2009, 18:00
Beiträge: 346
R3laX hat geschrieben:
Ja ich hab die Bestätigung gefunden. Innerhalb einer <tr> darf man keine Form haben.. Dann werd ich das wahrscheinlich ändern.

Es funktioniert allerdings nach dem Fix von mir.. Merkwürdig.


Dein Form ist nicht in der tr, sondern in einer td. Jetzt stellt sich natürlich die Frage was du für einen HTML-Dialekt hast, aber in HTML5 dürfen Forms in TD elementen sein: http://www.w3.org/TR/html5/tabular-data.html#the-td-element

_________________
Ruhe jetzt, sonst hol ich meinen kleinen Bruder.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 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:
cron