Warnung: missing <tr> in Tidy

Begonnen von pyr0, 23 Februar 2010, 10:14:53

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

pyr0

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
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

reddragon

     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?

siggi

#2
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:
Wenn man an Gras zieht wächst es auch nicht schneller.

pyr0

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
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

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:

Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

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
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

reddragon

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

siggi

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
Wenn man an Gras zieht wächst es auch nicht schneller.

pyr0

Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

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:
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!