php
  • forms
  • while-loop
  • 2016-08-22 46 views 2 likes 
    2

    我想創建一個表格,您可以'註銷'填充它的項目。目前,表格看起來並沒有問題,但是當你去'Sign Off'項目時,它只會作用於最新的mysql行['directory']以及最新的文本字段。PHP雖然在表格中的表格形式循環

    當我說'註銷'時,我的意思是將某人的姓名首字母插入到與該項目關聯的mysql表格行中。我當然需要正確處理POST提交。

    這可能並不完美,所以請看看我目前的代碼;

    echo "<form action='signoff.php' method='post' id='signoffform' style='display:inline;'>"; 
    echo "<p3><table id='myTable3' class='tablesorter'> 
    <thead> 
    <tr> 
        <th>To Delete</th> 
        <th>Directory</th> 
        <th>Space Used</th> 
    </tr> 
    </thead>"; 
    
    while($row = mysqli_fetch_array($result)) 
    { 
    
    echo "<tr>"; 
    echo "<td><input type='text' name='signoff' id='signoff' form='signoffform' /><button>Sign Off</button> Signed Off By:" . $row['signoff'] . "</td>"; 
    echo "<td><input type='text' name='dir' id='dir' form='signoffform' value='" . $row['directory'] . "' readonly /></td>"; 
    echo "<td>" . $row['used'] . "</td>"; 
    echo "</tr>"; 
    
    } 
    echo "</table></p3>"; 
    echo "</form>"; 
    

    signoff.php

    <?php 
    echo $_POST["signoff"]; 
    echo "<br />"; 
    echo $_POST["dir"]; 
    ?> 
    

    請隨時索取更多信息

    +0

    如果你的代碼正在工作,你應該在Code Review網站上發佈。 – jotadepicas

    +0

    它無法正常工作。請再看看我的blurb,謝謝! –

    +0

    好吧,對不起,我沒有明白你的問題是什麼。 – jotadepicas

    回答

    1

    ...當你去 '簽署' 的項目 - 這隻會作用於最新的mysql行['directory']以及隨附的最新文本字段。

    的問題是因爲你的name屬性,name='signoff'name=dir的。循環遍歷結果集時,每次迭代都會覆蓋name屬性值。因此,無論你點擊哪個按鈕,你總能得到最後一行的值。

    所以解決會是這樣:

    更改while循環通過以下方式,

    // your code 
    
    while($row = mysqli_fetch_array($result)){ 
        echo "<tr>"; 
        echo "<td><input type='text' name='signoff[".$row['directory']."]' id='signoff' form='signoffform' /><button>Sign Off</button> Signed Off By:" . $row['signoff'] . "</td>"; 
        echo "<td><input type='text' name='dir[".$row['directory']."]' id='dir' form='signoffform' value='" . $row['directory'] . "' readonly /></td>"; 
        echo "<td>" . $row['used'] . "</td>"; 
        echo "</tr>"; 
    } 
    
    // your code 
    

    而且在signoff.php網頁,處理您的形式通過以下方式,

    foreach($_POST['dir'] as $dir){ 
        if(!empty($_POST['signoff'][$dir])){ 
         $signoff = $_POST['signoff'][$dir]; 
    
         // That how you can get $dir and the corresponing $signoff value 
    
        } 
    } 
    

    旁註:如果你想看到整個$_POST的陣列結構,請var_dump($_POST);signoff.php頁面。

    +0

    啊哈!那就做到了!非常感謝你! –

    +0

    @HuckleberryFinn你很受歡迎! :-) –

    相關問題