Эхо PHP переменная из функции для ширины: Стиль - PullRequest
2 голосов
/ 01 апреля 2019

Мне нужно получить переменную $ процентов_формат вне цикла для использования в моем стиле, чтобы получить динамическую ширину для div. Но проблема в том, что я параметризовал функцию Ofen_Auslastung с результатом sql из цикла. Есть идеи как это исправить?

<code>foreach ($connection->query($sql) as $row) {

                        $j=0;
                        echo "<tr>";
                            echo "<td> <a href='Kapauebersicht.php?OfenName=".$row['Name']."'><button onclick='myFunction()'><img src='http://xxx/xxx/Bilder/".$row[$j].".png' height='80px'></button></a></td>";       //Bezeichnung1
                            echo "<td>".$row[$j]."</td>";       //Bezeichnung1
                            list($total, $percent_format, $Anzahl) = Ofen_Auslastung($row[$j]);
                            $j++;
                            echo "<td>".$row[$j]."</td>";       //Bezeichnung2
                            $j++;
                            echo "<td>".$row[$j]."</td>";       //Bezeichnung3
                            $j++;
                            echo "<td><div class='outter'><div class='inner' >$percent_format%</div> $Anzahl belegte Plätze sind $percent_format% Auslastung von $total Plätzen. <p /></td>";
                        echo "</tr>";
                    }

                $connection = null; //reset connection


            }
            catch(PDOException $e)
                {
                    echo $e->getMessage();
                }           
    echo "</table>";

            //echo "<pre>";
            //print_r($sort);
            //echo " ****************************************************************** <br>";
            //print_r($sorted);

            //echo "
"; ?>

спасибо за помощь.

Ответы [ 3 ]

1 голос
/ 01 апреля 2019

Вы всегда можете объявить переменную вне цикла, а затем установить ее внутри цикла:

<code>$percent_format = "";

foreach ($connection->query($sql) as $row) {

                        $j=0;
                        echo "<tr>";
                            echo "<td> <a href='Kapauebersicht.php?OfenName=".$row['Name']."'><button onclick='myFunction()'><img src='http://xxx/xxx/Bilder/".$row[$j].".png' height='80px'></button></a></td>";       //Bezeichnung1
                            echo "<td>".$row[$j]."</td>";       //Bezeichnung1
                            list($total, $pcnt_format, $Anzahl) = Ofen_Auslastung($row[$j]);
$percent_format = $pcnt_format;
                            $j++;
                            echo "<td>".$row[$j]."</td>";       //Bezeichnung2
                            $j++;
                            echo "<td>".$row[$j]."</td>";       //Bezeichnung3
                            $j++;
                            echo "<td><div class='outter'><div class='inner' >{$percent_format}%</div> $Anzahl belegte Plätze sind $percent_format% Auslastung von $total Plätzen. <p /></td>";
                        echo "</tr>";
                    }

                $connection = null; //reset connection


            }
            catch(PDOException $e)
                {
                    echo $e->getMessage();
                }           
    echo "</table>";

            //echo "<pre>";
            //print_r($sort);
            //echo " ****************************************************************** <br>";
            //print_r($sorted);

            //echo "
";?>
1 голос
/ 01 апреля 2019

Я думаю, что вы пытаетесь добавить динамическую ширину в элемент div с классом с именем inner.По моему мнению, вам не нужно значение переменной $ процентов_формат вне цикла, если вы хотите динамически изменить стиль CSS элемента div , который уже находится внутри цикла.Вам просто нужно добавить inline css в div с class с именем inner как строка кода, выделенная жирным шрифтом, написанная ниже:

foreach ($connection->query($sql) as $row) {
  $j=0;
  echo "<tr>";
  echo "<td> <a href='Kapauebersicht.php?OfenName=".$row['Name']."'><button onclick='myFunction()'><img src='http://xxx/xxx/Bilder/".$row[$j].".png' height='80px'></button></a></td>";       //Bezeichnung1
  echo "<td>".$row[$j]."</td>";       //Bezeichnung1
  list($total, $percent_format, $Anzahl) = Ofen_Auslastung($row[$j]);
  $j++;
  echo "<td>".$row[$j]."</td>";       //Bezeichnung2
  $j++;
  echo "<td>".$row[$j]."</td>";       //Bezeichnung3
  $j++;
  echo "<td><div class='outter'><div class='inner' style='width: $percent_format%;'>$percent_format%</div> $Anzahl belegte Plätze sind $percent_format% Auslastung von $total Plätzen. <p /></td>";
  echo "</tr>";
}

Youдля этого не нужно вызывать переменную $ процентов_формат вне foreach.И если вы все еще хотите вызвать переменную вне цикла, вы можете использовать ее.Но при этом будет отображаться только значение последнего элемента из цикла.Я надеюсь, что это может решить вашу проблему.

1 голос
/ 01 апреля 2019

В этой строке вы повторяете строку:

 echo "<td><div class='outter'><div class='inner' >$percent_format%</div> $Anzahl belegte Plätze sind $percent_format% Auslastung von $total Plätzen. <p /></td>";

Помогло бы закрыть и снова открыть php вокруг переменной ...

 echo "<td><div class='outter'><div class='inner' >" . $percent_format . "%</div> $Anzahl belegte Plätze sind " . $percent_format . "% Auslastung von $total Plätzen. <p /></td>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...