pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: pyr0 in 23 Februar 2010, 10:14:53

Titel: Warnung: missing <tr> in Tidy
Beitrag von: pyr0 in 23 Februar 2010, 10:14:53
Salü an alle,
ich komm nicht rauf warum es im Firefox Plugin Tidy immer diese Fehlermeldung bzw Warnung gibt.

line 201 column 1499 - Warnung: missing <tr>


............
$anzeige = '2';
    echo '<table border="0" cellpadding="0" cellspacing="0" style=" vertical-align:top"  width="100%"><tr>';
    $result1 = sql_query("SELECT project_id,project_name FROM " . $prefix . "_project_project_view where  is_activ='1'  AND user_priv!='2'  ");
    $z=0;
    while (list($project_id,$project_name) = sql_fetch_row($result1))
    {
      echo'<td width="33%" valign="top">';
                echo '<table width="100%" border="0">'
               .'<tr>'
                            .'<td width="30">&nbsp;</td>'
                            .'<td><input type="checkbox" name="C1" value="ON"> ' . $project_name . '</td>'
                        .'</tr>'
                        .'</table>';
     
      echo'</td>';
       
     if($z == $anzeige)
      {
            echo '</tr>';
           $z=0;
        }
        else{
        $z++;
        }
   
    }
       
echo'</table>'
............


könnte mir dabei jemand helfen bitte ?

Merci
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: reddragon in 23 Februar 2010, 18:38:00
     if($z == $anzeige)
      {
            echo '</tr>';
           $z=0;
        }
        else{
        $z++;
        }   


Warum bekommt das Skript, wenn die if-Bedingunge erfüllt wird einen "</tr>", und andernfalls nicht?
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: siggi in 23 Februar 2010, 19:35:53
Hi :)

So wie ich das verstanden habe, willst du die Inputfelder nebeneinander mit einer Limitierung positionieren, richtig ?

Warum nicht einfach die float-Eigenschaft benutzen, die automatisch den Platz nutzt und ggf.  in eine neue Ziele positioniert ?

Code (db abfragen und in array schreiben) Auswählen

<?php

settype
$projects'array' );

$result1 sql_query"SELECT project_id,project_name FROM " $prefix "_project_project_view where  is_activ='1'  AND user_priv!='2'  " );
while( list( 
$id,$name ) = sql_fetch_row$result1 ) ) {
        
$projects[$id] = $name;
}

?>



Code (Beispiel 1 mit Limitierung, hier 2) Auswählen

<?php

$anzeige 
2;
$z 0;

?>


<?php if( count$projects ) > ) :?>
<table style="border:0; padding:0; width:100%">
        <tr>
                <td>
                        <?php foreach( $projects as $id => $project ) :?>
                        <div style="float:left; width:33%">
                                <input type="checkbox" name="prj_<?php echo $id ?>" value="ON" /> <?php echo $project ?>
                        </div>
                        <?php if( $anzeige === ++$z ) : ?>
                                <br style="clear:left;" />
                        <?php $z 0; endif ;?>
                        <?php endforeach ;?>
                </td>
        </tr>     
</table>
<?php endif ;?>



Code (Beispiel 2 keine Limitierung, Anzahl laut Breite des Wrappers) Auswählen


<?php if( count$projects ) > ) :?>
<table style="border:0; padding:0; width:100%">
        <tr>
                <td>
                        <?php foreach( $projects as $id => $project ) :?>
                        <div style="float:left; width:33%">
                                <input type="checkbox" name="prj_<?php echo $id ?>" value="ON" /> <?php echo $project ?>
                        </div>
                        <?php endforeach ;?>
                </td>
        </tr>     
</table>
<?php endif ;?>



Zitatkönnte mir dabei jemand helfen bitte ?

Merci

... de nada   :cool:
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: pyr0 in 23 Februar 2010, 19:49:24
Also reddragon:
wenn ich das so mache

.............
if($z == $anzeige)
{
        echo '</tr>';
        #echo'<tr>';
        $z=0;
}
else{
       $z++;
       echo '</tr>';
}
  ...........

dann kommen noch viel mehr Fehler und außerdem wird dann immer nur eins an gezeigt und dann schon umgebrochen (siehe Screenshot ) und es soll so wie auf dem zweiten Screenshot sein nur halt ohne Fehler bzw Warnungen in dem Plugin.

Das ganze funktioniert zwar aber halt dann mit Fehlermeldungen.



siggi:  Merci ich werd das gleich mal testen
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: pyr0 in 23 Februar 2010, 19:59:10
siggi: ja geht super nur hab ich jetzt ein Problem,
da ich ja in der Function danach folgendes mache

foreach($_POST['is_promo'] as $project){ 
    sql_query("update " . $prefix . "_project_project_view set project_promo='1' where project_id='$project' ");
}


Nur wie komme ich jetzt an die ProjektID mit Deinem Script ran?
Denn es kommt ja folgendes an

[promo_count] => 3
    [prj_2] => ON
    [prj_6] => ON


Das wäre das was mit post übergeben wird. Un dnun steh ich erstmal total auf dem Schlauch.

Bitte Siggi erklär mir mal etwas dazu  :red:

Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: pyr0 in 23 Februar 2010, 20:11:18
Hab es jetzt erstmal so gelöst:
$anzeige = 3;
$z = 0;
    echo '<table style="border:0; padding:0; width:100%">';
    echo '<tr><td>';
    $result1 = sql_query("SELECT project_id,project_name,project_promo FROM " . $prefix . "_project_project_view where  is_activ='1'  AND user_priv!='2'  ");

    while (list($project_id,$project_name,$project_promo) = sql_fetch_row($result1)){
    if($project_promo == "1"){
      $checked ='checked';
      }
      else{
          $checked ='';
          }
          echo '<div style="float:left; width:33%">';
          echo '<input type="checkbox" name="is_promo[]" ' . $checked . ' value="' . $project_id . '">' . $project_name . '</div>';
if($z == $anzeige){
echo '<br style="clear:left;" />';
$z=0;
}
       

}
echo ' </td>
        </tr>     
</table>';


Ist bestimmt nicht die sauberste  :red:
Aber es geht ohne Fehler und ich komm so auch an die Daten ran  :pardon:

Siggi: was bedeutet das :
<?php if( $anzeige === ++$z ) : ?>
    <br style="clear:left;" />

da sind so viele = und + drin ??? Ist das die verkürtzte Schreibweise ?

Kannst Du mir dazu mal ne Info bitte geben
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: reddragon in 23 Februar 2010, 20:18:22
hmm...  das hatte ich auch mal in Java.... :gruebel:

Aber hier:
http://www.strassenprogrammierer.de/php-drei-gleichheitszeichen-f%FCr-mehr-sicherheit_tipp_397.html

und die +  in doppelter Ausführung erhöhen um den Wert 1
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: siggi in 23 Februar 2010, 20:32:31
Zitatda sind so viele = und + drin  ??? Ist das die verkürtzte Schreibweise ?

Kannst Du mir dazu mal ne Info bitte geben


<?php if( $anzeige === ++$z )  : ?>   Abfrage, ob Zählvariable $z der $anzeige entspricht und anschliessendes Erhöhen von $z um 1
<br style="clear:left;" />            Zeilenumbruch und das "flotieren" beenden
<?php $z = 0; endif ;?>               $z wieder auf 0 setzen bzw. Ende der IF Bedingung
Titel: Re: Warnung: missing <tr> in Tidy
Beitrag von: pyr0 in 23 Februar 2010, 22:20:29
Danke nochmal für die Hilfe

Titel: Re: Warnung: missing &amp;lt;tr&amp;gt; in Tidy
Beitrag von: pyr0 in 25 Februar 2010, 10:28:52
Es geht aber auch so:

$spalten = '3';
$i = 0;
    $result = sql_query("SELECT id,pic_name,pic_url,pic_status  FROM " . $prefix . "_karusell"); 
    while(list($id,$pic_name,$pic_url,$pic_status) = sql_fetch_row($result)) {
        $i++;

        if($i % $spalten == 1)
            print '<tr>';

        print '<td>';
        //  Inhalt der Zelle
        print '</td>';

        if($i % $spalten == 0)
            print '</tr>';
    }

    //  unter Umständen müssen noch leere Zellen angehängt werden
    if($i % $spalten != 0) {
        for($x = floor($i / $spalten); $x < ($i % $spalten); $i++) {
            print '<td>&nbsp;</td>';
        }

        //  und die Zeile schließen
        print '</tr>';
    }



Der Code ist nicht von mir aber er geht sauber  :cul: