PHPのforeachループについて質問があります。どういうわけか、私はこの方法で最後の行をエコーバックするだけのようで、この問題がどこにあるのか迷っています。$ onderdeeltje[1]と$selectedmodelをforeachループ内とIFステートメント外のエコーでチェックするたびに、問題なくすべてが完全に貼り付けられます。また、それらが等しく同じであり、IFステートメントに反応する必要があることも示しています。IFステートメント内の2つを比較するとすぐに、最後の1つだけが表示されます。チェックボックスechoを削除して、echo"test"などに置き換えます。また、一度だけテストすることも示しています。誰かがこれに光を当てることができますか?同じページにこのような複数(2 +これ)のforeachループがあり、完全に機能しますが、これだけがバグのようです。
echo "<form method='post' action='formpie.php'>";
$onderdelen = file("onderdelen.txt");
foreach ($onderdelen as $onderdeel)
{
$onderdeeltje = explode(",", $onderdeel);
if ($onderdeeltje[1] == $selectedmodel)
{
echo "<input type='checkbox' name='check_list[]' value='$onderdeeltje[0]'>$onderdeeltje[0]<br>";
}
}
echo "</form>";
$ selectedmodelは次のようになります:iPhone 3Gおよびテキストリストは次のとおりです:
Reparatie touchscreen €41.50,iPhone 3G
Reparatie Wi-Fi-antenne €50.00,iPhone 3G
Reparatie trilmodule €40.00,iPhone 3G
Reparatie sim slot €70.50,iPhone 3G
Reparatie oorluidspreker €46.00,iPhone 3G
チェックボックスとしてReparatieoorluidspreker€46.00のみが表示されます。
私を助けてください!:) 前もって感謝します!
-------------------------------------------------- -----------
の解き方:
<br>
繰り返しフォームのチェックボックス値のリストのようなもの、または私の場合はリストを1行ごとに貼り付けると、出力に非表示のスペースが表示されない可能性があるようです。
これを修正するには、次のようにIFequalステートメントの前または内部の値をトリミングする必要があります。
foreach ($onderdelen as $onderdeel)
{
$onderdeeltje = explode(",", $onderdeel);
if (trim($onderdeeltje[1]) == $selectedmodel)
{
echo "<input type='checkbox' name='check_list[]' value='$onderdeeltje[0]'>$onderdeeltje[0]<br>";
}
}
ZombieSpyからのサポートのおかげで解決しました。