我正在嘗試使用 php 和 json 檔案填充下拉串列。它應該填充所有“名稱”值。如果我使用:
$printers=file_get_contents ("config/printers.json");
$test= json_decode($printers,true);
foreach($test as $test) {
echo $test['Name'];
}
它將顯示正確的值,因此我知道 json 是正確的并使用正確的呼叫來獲取資料。(更新)如果我按照建議使用它,我會收到一個錯誤“致命錯誤,未捕獲的型別錯誤:無法訪問字串中型別字串的偏移量:”并指向回顯呼叫。
<select id="printer" name="printer">
<option value="none">Select Printer</option>
<?php
foreach($test as $t) {
echo '<option value="'. $t['Name']. '">'. $t['Name'].'</option>';
}
?>
</select>
但是,如果我將其更改為(這可能是錯誤的):
<select id="printer" name="printer">
<option value="none">Select Printer</option>
<?php
foreach($test as $t) {
echo '<option value="'. $test['Name']. '">'. $test['Name'].'</option>';
}
?>
</select>
錯誤消失,下拉串列將被填充,但只有 5 個條目。(陣列中有 20 個元素)并且所有 5 個條目都是陣列中的最后一項。
我想我在正確轉義引號時遺漏了一些東西?這部分似乎解決了?
json檔案是:
[
{
"Name": "CR-10",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10 V2",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10 Mini",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10S",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10S4",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10S5",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10S Pro",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10S Pro V2",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-10 Max",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "CR-20",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 3",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 3X",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 3 V2",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 3 Pro",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 3 Pro/BLV Mod",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 5",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 5 Pro",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Ender 5 Plus",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Voxelab Aquila",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
},
{
"Name": "Anet ET4/ET5",
"GantryStyle": 1,
"comment": "",
"image": "cr-10.jpg",
"option1": ""
}
]
uj5u.com熱心網友回復:
您可以一起使用'和":
<select id="printer" name="printer">
<option value="none">Select Printer</option>
<?php
foreach($test as $t) {
echo '<option value="'. $t['Name']. '">'. $t['Name'].'</option>';
}
?>
</select>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/444162.html
