Почему моя функция ничего не выводит?

Я просто пытаюсь немного узнать о коде.
У меня есть этот фрагмент кода, который повторяется довольно много раз

Это, вероятно, грязный код, так как я не профессионал.

<td><?php if ($row["boption03"] >= 1) echo "<input
name='orderdetails[" . $row['prod_selectname'] . 03 . "]'
id='" . $row['prod_selectname'] . 03 . "'
placeholder='3mg' type='number'
class='liq03 form-control'"?> <?php if ($row["boption03"] == 2) echo "disabled" ?>
<?php if ($row["boption03"] >= 1) echo "/>"?>
</td>

Я пытаюсь поместить это в функцию (потому что я думаю, что это лучше и опрятнее)

вот что у меня так далеко

function liquidBox($boptionStrength) {
if ($row["boption$boptionStrength"] >= 1) echo "<input
name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]'
id='" . $row['prod_selectname'] . $boptionStrength . "'
placeholder='$boptionStrength' type='number'
class='liq$boptionStrength form-control'" . (($row["boption$boptionStrength"] == 2)?'disabled':"") . "/>";

}

и называя это

<td><?php liquidBox("00"); ?></td>

но это ничего не выводит.

Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении.

Спасибо

Если я поставлю var_dump ($ boptionStrength) перед «если», то получу вывод int (3), поэтому переменная передается в функцию — предложено Cid

-1

Решение

попробуй это:

function liquidBox($row, $boptionStrength) {
if ($row["boption0".$boptionStrength] == 2) {
echo "<input name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]' id='" . $row['prod_selectname'] . $boptionStrength . "' placeholder='$boptionStrength' type='number'   class='liq$boptionStrength form-control'" . " disabled />";
} else {
echo "<input name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]' id='" . $row['prod_selectname'] . $boptionStrength . "' placeholder='$boptionStrength' type='number'   class='liq$boptionStrength form-control' />";
}
}

<td><?php liquidBox($row, 1); ?></td>
0

Другие решения

Ты можешь использовать sprintf() отформатировать числовое значение в строку с префиксом 0.

В твоем случае, sprintf("%02d", $boptionStrength);, % означает, что будет преобразование. 0 означает, что преобразование будет использовать этот символ для заполнения. 2 означает, что будет максимум 2 дополненных символа. d для десятичного.

echo sprintf("%02d", 0);    //outputs 00
echo sprintf("%02d", null); //outputs 00
echo sprintf("%02d", 3);    //outputs 03
echo sprintf("%02d", 42);   //outputs 42
echo sprintf("%02d", 123);  //outputs 123

Например, используя вашу функцию:

function liquidBox($boptionStrength)
{
$boptionStrength = sprintf("%02d", $boptionStrength);
if ($row["boption$boptionStrength"] >= 1)
{
//your code
}
}
0

Кажется, мне это удалось благодаря подсказкам Cid (sprintf) и Rishat ($ row, boptionStrength)

Это мой конечный результат

function liquidBox($row, $boptionStrength, $phtext)
{
$boptionStrength = sprintf("%02d", $boptionStrength);
if ($row["boption$boptionStrength"] >= 1)
/*var_dump($boptionStrength); */

{echo "<input
name='orderdetails[" . $row['prod_selectname'] . $boptionStrength . "]'
id='" . $row['prod_selectname'] . $boptionStrength . "'
placeholder='$phtext'
type='number'
class='liq$boptionStrength form-control'" . (($row["boption$boptionStrength"] == 2)?'disabled':"") . "/>";}

}

и я использую следующее для вызова функции

        <td><?php liquidBox($row, 00, '0mg'); ?></td>
<td><?php liquidBox($row, 03, '3mg'); ?></td>
<td><?php liquidBox($row, 06, '6mg'); ?></td>
<td><?php liquidBox($row, 12, '12mg'); ?></td>
<td><?php liquidBox($row, 18, '18mg'); ?></td>
<td><?php liquidBox($row, 20, '20mg'); ?></td>

Спасибо за вашу помощь

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector