php
  • arrays
  • forms
  • 2013-10-20 42 views 0 likes 
    0

    PHP noob here。我使用PHP來呈現供應訂單。可以訂購的耗材列表是動態的,所以我將它們從MySQL數據庫中提取出來。這是通過查詢的結果循環生成HTML表單字段的PHP代碼:PHP數組和表格值

    while($row = mysqli_fetch_array($itemresult)) 
    { 
    echo "<input type='hidden' name='Item_ID[]' value='" . $row['Item_ID'] . "'></TD>"; 
    echo "<TR><TD class='itemdesc'>" . $row['Item_Name'] . " </TD>"; 
    echo "<input type='hidden' name='Item_Name[]' value='" . $row['Item_Name'] . "'></TD>"; 
    echo "<TD>" . $row['Item_Qty'] . " </TD>"; 
    echo "<TD class='itemprice'>" . $row['Price'] . " </TD>"; 
    echo "<input type='hidden' name='Item_Price[]' value='" . $row['Price'] . "'></TD>"; 
    echo "<TD><input type='text' size='3' name='Order_Qty[]'></TD>"; 
    echo "<TD><input type='checkbox' name='Off_Day[]'></TD>"; 
    } 
    

    我有使用數組沒有經驗,但它是有道理的,我需要傳遞給我的過程中,這些形式的值。數組格式的php文件。現在,我的process.php的目的是簡單地打印一個Item_Name和相關的Order_Qty自己的列表,非常像: 鉛筆10 筆7 等等。 作爲數組和PHP的新手,我不知道如何在我的process.php文件中實現這一點,並希望得到一些指導。謝謝!

    ++++++++++++++++++++++++++++++++++++++++++++++ + * @yknivag * 謝謝!這有助於我瞭解結構。我一直在線測試各種各樣的foreach示例,遇到了障礙,可以使用一些額外的幫助。我的數組結果看起來像這樣。

    [Item_Name] => Array (
    [0] => One Item 
    [1] => Second Item 
    [2] => Third Item 
    [3] => Fourth Item ) 
    
    [Item_Price] => Array (
    [0] => 0.00 
    [1] => 64.50 
    [2] => 110.00 
    [3] => 38.45 ) 
    

    如何引用數組中的某個值,如'Second Item'?我似乎無法弄清楚引用特定項目的語法。例如,這個語句沒有返回任何數據。

    echo "Item: " . $_POST[Item_Name] . "<BR>"; 
    

    什麼也將是有益的,是要知道如何顯示相應的數組的項目,如「第二個項目」和'64 0.50' 起來呢? 下面的foreach循環看起來應該這樣做,但它也不會返回任何數據。

    foreach ($myarray as $key => $value) 
    { 
    echo "<p>".$key." ".$value."</p>"; 
    } 
    

    我讀過的所有東西都說這應該給我我想要的東西,我很困惑它爲什麼沒有返回。

    +2

    您的陣列使用情況看起來不錯。你的表單名稱也可以。我不確定你在問什麼。 – Machavity

    回答

    0

    在你process.php文件開始:

    <?php 
    print "<pre>" . PHP_EOL; 
    print_r($_POST); 
    print "</pre>" . PHP_EOL; 
    ?> 
    

    然後你會看到這是被送回的數據結構和應該幫助你制定出如何處理它。

    一旦你有了結構,檢查foreach命令。

    0

    你想要的關聯數組

    array("pencil" => 9.99, "pen" => 3.23, "paper" => 21.11) 
    

    如果通過AJAX提交表單,你可以使用JavaScript來的值張貼到你的PHP頁面。

    var pencil = document.getElementById("pencil").value; 
    var pen = document.getElementById("pen").value; 
    var paper = document.getElementById("paper").value; 
    $.post("process.php", {pencil: pencil, pen: pen, paper: paper}); 
    

    在您的 「進程」 頁面,你會抓住這被張貼

    $pencil = $_POST["pencil"]; 
    $pen = $_POST["pen"]; 
    $paper = $_POST["paper"]; 
    

    然後用以下

    $myarray = array("pencil" => $pencil, "pen" => $pen, "paper" => $paper); 
    

    編輯

    建立你的數組中的值在你的WHILE循環中,通過放置你自己來構建一個數組s的結束

    $myarray[$name] = $price; 
    

    然後循環之外,你的陣列編碼成JSON對象

    $myjson = json_encode($myarray, JSON_HEX_APOS); 
    

    現在你有一個JSON對象,你需要抓住它在JavaScript

    var myjson = <?php echo $myjson; ?>; 
    

    然後,你可以做任何你想用鍵/值對

    for(var key in myjson){ 
        var item_name = key; 
        var item_price = myjson[key]; 
        //where the magic happens 
    } 
    
    +0

    這是好東西,但我不確定它是否符合我的表單要求。我的表單和字段名稱是動態構建的,所以當我將它們發現到我的流程腳本時,我不會知道即將發生的字段名稱。 (我的表單/字段生成代碼在我的原始文章中)。有沒有辦法調整您的建議以符合我的要求?謝謝! – DuckR1

    +0

    @ DuckR1查看最新的答案。希望能幫助到你! –

    相關問題