• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage an Profis

cyberurmel

Neues Mitglied
Hi all,

ich habe bereits mal im html Teil hier gepostet aber nicht wirklich weiter gekommen.

PHP:
{if $options!=''}

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  {foreach name=outer item=options_data from=$options}
  <tr>
    <td valign="top" class="main" width="1%"><b>{$options_data.NAME}:</b>&nbsp;</td>
    <td class="main" width="99%">
  {foreach key=key_data name=key_data item=item_data from=$options_data.DATA}
    <input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" {if $smarty.foreach.key_data.first}checked="checked" {/if} />
    {$item_data.TEXT} {if $item_data.PRICE!=''}({$item_data.PREFIX}{$item_data.PRICE}) {$item_data.ATTR_VPE}{/if}
    <br />
  {/foreach}
</td>
  </tr>
  {/foreach}
</table>
{/if}
Ich habe obige html Datei. Es ist eine Zeile tr welche durch Abfrage sich wiederholt (for each oder? Also habe ich 3 Attribute sind es 3 Zeilen usw. Ist aus Shopsystem.
Die zweite table data in der tr ist zuerst ein Formular Feld dann kommen die Abfragen zu Preis etc.
Leider ist es so, dass wenn sich die Preise unterscheiden mit einer dezimal mehr, es nicht mehr untereinander ist. Kann mir jemand helfen und sagen wie man das lösen kann?
Im Grunde würde es reichen, wenn ich die einzelnen Abschnitte "unterteilen könnte" um linksbund ,rechtsbund oder center zu erzielen.
Mit ner Tabelle geht das so leider nicht wegen dem foreach .

Ich selbst habe zugegebn nicht viel Ahnung davon.

Danke vorab
greets
 
Hallo,

schuldige kannst nächste mal nicht einfach mal den Ausgabecode posten und nicht dein PHP/smarty oder was auch immer. Wir wollen hier fast alle helfen aber erst den Prog code duchblicken und dann nach lösung suchen ist doch nicht so einfach.

Schau dir mal das an, vielleicht ist es das was du suchst.
HTML:
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
.left {
 float: left;
}
.breit1 {
 background-color: #CF0;
 width: 120px;
 display: block;
}
.breit2 {
 background-color: #6FF;
 width: 150px;
 display: block;
 text-align: center;
}
</style>
</head>
<body>
<span class="left">Bla Text </span><span class="breit1 left">Text rechts B</span><span class="breit2 left">center Text</span> sdasd sda 
</body>
</html>

Cheffchen
 
Hi cheffchen

vielen Dank erstmal. Werde ich testen. Sorry, ich habe die html Datei genommen,welche die Daten generiert und anzeigt.
Ich werde es mal testen ob es so gut.

btw. ich war auch mehrere Jahre bei Peter H. :-)

greets
 
So hier nochmal der Ausgabecode..

Anmerkung:
class=main habe ich nicht in meiner .css datei

HTML:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td valign="top" class="main" width="1%"><b>Inhalt:</b>&nbsp;</td>
    <td class="main" width="99%">
      <input type="radio" name="id[10]" value="71" checked="checked"  />
    2 kg ( 7,20 EUR) Grundpreis 3,60 EUR pro Kg    <br />
      <input type="radio" name="id[10]" value="74"  />
    4 kg ( 13,30 EUR) Grundpreis 3,33 EUR pro Kg    <br />
      <input type="radio" name="id[10]" value="75"  />
    8 kg ( 24,50 EUR) Grundpreis 3,06 EUR pro Kg    <br />
      <input type="radio" name="id[10]" value="77"  />
    20 kg ( 57,70 EUR) Grundpreis 2,89 EUR pro Kg    <br />
  </td>
  </tr>
  </table>

und nochmal sorry wenn ich nicht alles gleich checke, html & co ist (noch) nicht meine Stärke.

greets
 
Ist aus Shopsystem.
[..]
Leider ist es so, dass wenn sich die Preise unterscheiden mit einer dezimal mehr, es nicht mehr untereinander ist. Kann mir jemand helfen und sagen wie man das lösen kann?

Die Anzahl der Dezimalstellen sollte in der Ausgabe möglichst immer 2 sein. Ich kenne kein Shopsystem, welches weniger oder mehr Zahlen nach dem Komma ausgibt, obwohl nur ganz wenige es zumindest mathematisch richtig machen und intern mit 4 oder mehr Stellen arbeiten.

Du meinst hier jedoch die Anzahl zahlen vor dem Komma, allerdings scheinbar nicht in Bezug auf die angezeigten Preise sondern auf die Mengenangabe. Und so gesehen wendest Du eine Tabelle hier falsch an. Es würde völlig genügen die Inhalte selbst in einer Tabelle darzustellen statt diese insgesamt in eine Tabellenzelle zu stopfen.

Code:
<p><strong>Inhalt:</strong></p>
<table>
 <thead>
  <tr>
   <th>&nbsp;</th>
   <th>Gewicht</th>
   <th>Preis pro kg</th>
   <th>Preis</th>
  </thead>
  <tbody>
   <tr>
    <td><input type="radio" name="id[10]" value="71" checked="checked"  /></td>
    <td>2 kg</td>
    <td class="preis">2,89 EUR</td>
    <td class="preis">7,20 EUR</td>
  </tr>
  <tr>
    <td><input type="radio" name="id[10]" value="74"  /></td>
    <td>4 kg</td>
    <td class="preis">3,30 EUR</td>
    <td class="preis">13,30 EUR</td>
  </tr>
 </tbody>
</table>

Die Zellen die Preise enthalten, erhalten eine CSS-Klasse "preis". Diese Klasse soll dann "text-align: right;" setzen wodurch alle Preise rechtsbündig ausgegeben werden und somit auf einer Linie, gut lesbar, ausgegeben werden.
 
Hallo threadi,

danke erstmal deiner Antwort. Leider kapier ich diese nicht :(

also:
1. Die .html des shops ist ja vorgegeben und enthält Abfragen und eine fore each schleife. Nennt sich das so? Siehe ersten post hier.
2. Richtig es geht um die Preise jeweils vor Komma. Das kann bei manch Artikel 2 Dezimalen ausmachen.
3. Eine Tabelle wie du Sie gemacht hast, hatte ich auch ähnlich schon. Leider funzt das dann nicht mit den Vorgaben/Abfragen wie cheffchen mir ja schon den Rüffel gab :
"..dein PHP/smarty" .. obiger Code war ja Beispiel. Es sind immer unterschiedlich viele Angaben. Von daher denke ich mit meinem wenig Wissen, wird das so nicht funktionieren oder doch?
Deswegen wohl nur eine zeile damit je nachdem wieviel abfragen immer diese mit foreach wiederholt werden?

greets
 
Hallo,

also mach das mit Tabelle, denn das fällt ja nun nicht mehr auf, denn der rest scheint ja auch Tabelle zu sein, denn CSS wir nicht einfacher :O).

Hier aber mein Letzter versuch mit CSS.

112c3859bc9a4de3d84579c56a066c5a031f16ba.jpg
HTML:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unbenanntes Dokument</title>
<style type="text/css">
.left {
 float: left;
 background-color: #CFF;
 width: 22px;
}
.detailA {
 float: left;
 background-color: #6FF;
 width: 50px;
 text-align: right;
}
.detailB {
 float: left;
 background-color: #CCF;
 width: 170px;
 text-align: right;
}
.detailC {
 float: left;
 background-color: #0F0;
 width: 170px;
 text-align: right;
}
.block {
 clear: none;
 background-color: #F00;
 float: none;
 height: 1px;
}
</style>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td valign="top" class="main" width="1%"><b>Inhalt:</b>&nbsp;</td>
    <td class="main" width="99%">
      <input type="radio" name="id[10]" value="71" checked="checked"  />
    2 kg ( 7,20 EUR) Grundpreis 3,60 EUR pro Kg    <br />
      <input type="radio" name="id[10]" value="74"  />
    4 kg ( 13,30 EUR) Grundpreis 3,33 EUR pro Kg    <br />
      <input type="radio" name="id[10]" value="75"  />
    8 kg ( 24,50 EUR) Grundpreis 3,06 EUR pro Kg    <br />
      <input type="radio" name="id[10]" value="77"  />
    20 kg ( 57,70 EUR) Grundpreis 2,89 EUR pro Kg    <br />
  </td>
  </tr>
  </table>
<p>----------------<br>
</p>
<p>&nbsp; </p>
 
 
 
 
 
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td valign="top" class="main" width="1%"><b>Inhalt:</b>&nbsp;</td>
    <td class="main" width="99%">
      <span class="left">
      <input type="radio" name="id[10]" value="71" checked="checked"  /></span>
      <span class="detailA">
    2 kg</span> <span class="detailB">( 7,20 EUR) Grundpreis</span> <span class="detailC">3,60 EUR pro Kg</span>  
<p class="block"></p>
<span class="left">
      <input type="radio" name="id[10]" value="71" checked="checked"  /></span>
      <span class="detailA">
    4 kg</span> <span class="detailB">( 13,30 EUR) Grundpreis</span> <span class="detailC">3,33 EUR pro Kg</span>
    <p class="block"></p>
<span class="left">
      <input type="radio" name="id[10]" value="71" checked="checked"  /></span>
      <span class="detailA">
    8 kg</span> <span class="detailB">( 24,50 EUR) Grundpreis</span> <span class="detailC">3,06 EUR pro Kg</span>
     <p class="block"></p>
<span class="left">
      <input type="radio" name="id[10]" value="71" checked="checked"  /></span>
      <span class="detailA">
    20 kg</span> <span class="detailB">( 57,70 EUR) Grundpreis</span> <span class="detailC">2,89 EUR pro Kg</span>
    <p class="block"></p>    <br />
  </td>
  </tr>
  </table>
</body>
</html>

Cheffchen
 
1. Die .html des shops ist ja vorgegeben und enthält Abfragen und eine fore each schleife. Nennt sich das so? Siehe ersten post hier.

Solange Du nur den darin enthaltenen HTML-Code anpasst sollte es kein Problem sein. Solltest Du das nicht hinbekommen, wende dich an jemanden der Support für deine Shopsoftware leistet.

3. Eine Tabelle wie du Sie gemacht hast, hatte ich auch ähnlich schon. Leider funzt das dann nicht mit den Vorgaben/Abfragen wie cheffchen mir ja schon den Rüffel gab :
"..dein PHP/smarty" .. obiger Code war ja Beispiel. Es sind immer unterschiedlich viele Angaben. Von daher denke ich mit meinem wenig Wissen, wird das so nicht funktionieren oder doch?

Doch, wenn Du in deiner Templatedatei wirklich nur den HTML-Code anpasst. und dabei aber auch die Platzhalter des Shopsystems berücksichtigst.
 
Danke Euch beiden für die Hilfe.

ich versuche das mal einzubasteln, respective mit dem Ersteller der .html in Kontakt zu gehen. Ist ein Modul .
thx
greets
 
Zurück
Oben