0

ユーザーの現在のサービス情報をプロファイルに表示し、提供する 1 つ以上のサービスのチェック ボックスをオンにし、削除ボタンをクリックして関連するサービスを削除できるフォームを作成しようとしています。チェックボックス。各サービスには一意の ID があるため、クエリが何を削除するかを知るためにこれを使用する必要があると想定しています。

関連するコードと私が使用しているフォームは次のとおりです。

<?php

if (isset($_POST['OddJobName']) && isset($_POST['Description']) && isset($_POST['DaysAvailable']) && empty($errors) === true){//if (empty($_POST) === false && empty($errors) === true) { //if (isset(empty($_POST['OddJobName'])) && isset(empty($_POST['Description'])) && isset(empty($_POST['DaysAvailable'])) === false && empty($errors) === true)
            $daysavailable='';
            foreach ($_POST['DaysAvailable'] as $value)
            {

            $daysavailable .=$value." ";
            }

            $Delete_Oddjob = array (
                'MemberID'      => $MemberID,
                'OddJobID'      => $_POST['OddJobID'],
                'OddJobName'    => $_POST['OddJobName'],
                'Description'   => $_POST['Description'],
                'DaysAvailable' => $daysavailable, 

                );
                Delete_Oddjob ($Delete_Oddjob);
                if(success){
                 header('Location: member.php?username='.$username);
                 exit ();
                }
            } else if (empty($errors) === false){
                //otherwise output errors
                echo output_errors($errors);
            }

?>

<?php
                $result = mysql_query("SELECT * FROM `oddjob` WHERE `MemberID` = $MemberID");

                while($row = mysql_fetch_assoc($result))
                {

                echo"<table width='100%' border='1' cellspacing='0' cellpadding='5'>
                <td width='50%'>
                <table width='100%' cellspacing='17' cellpadding='0'>
                <form action='' method ='post' enctype='multipart/form-data'>
                    <tr>
                        <td>
                        <input type='hidden' name='MemberID' id='MemberID' value= ". $MemberID ."> 
                        </td>
                    </tr>
                    <tr>
                        <td>
                        <input type='hidden' name='OddJobID' id='OddJobID' value= ". $row['OddJobID'] ."> 
                        </td>
                    </tr>
                    <tr>
                        <td width='35%'>
                        <p>Name of OddJob*:</p>
                        </td>
                        <td>
                        <input type='text' name='OddJobID' style='width:180px' value= ". $row['OddJobID'].">
                        </td>
                    </tr>
                    <tr>
                        <td width='35%'>
                        <p>Name of OddJob*:</p>
                        </td>
                        <td>
                        <input type='text' name='OddJobName' style='width:180px' value= ". $row['OddJobName'].">
                        </td>
                    </tr>
                    <tr>
                        <td>
                        <p>Description*:</p>
                        </td>
                        <td>
                        <div class='expandingArea'>
                        <pre><span></span><br></pre>
                        <textarea name='Description'>". $row['Description'] ."</textarea>
                        </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                        <p>Days Available(current week)*:</p>
                        <p>(hold Ctrl to select multiple)</p>
                        </td>
                        <td>
                        <select name='DaysAvailable[]' size='5' multiple='multiple' id='DaysAvailable[]'>
                        <option value='Monday'>Monday</option>
                        <option value='Tuesday'>Tuesday</option>
                        <option value='Wednesday'>Wednesday</option>
                        <option value='Thursday'>Thursday</option>
                        <option value='Friday'>Friday</option>
                        <option value='Saturday'>Saturday</option>
                        <option value='Sunday'>Sunday</option>
                        </select>
                        </td>
                </td>
                    <tr>
                        <td>
                        <input type='checkbox' name='Delete' value= ". $row['OddJobID'] .">
                        </td>
                    </tr>
                </table>
                </table>
                </table>
                <input type='submit' name='Delete' value='Delete'>
                </form> ";
                }
?>

関数:

function Delete_Oddjob ($Delete_Oddjob){
            //global $Add_Oddjob;
             array_walk($Delete_Oddjob, 'array_sanitize');
             mysql_query("DELETE FROM `oddjob` WHERE `OddJobID` = '".$_POST['OddJobID']."'") or die (mysql_error());
}

これを機能させる方法がわかりません。チェックボックスを選択して削除ボタンをクリックすると、ページが更新されたように見えますが、他に何も起こりません。また、クエリをエコーアウトしようとすると、何も表示されません。

echo "DELETE FROM `oddjob` WHERE `OddJobID` = '".$_POST['OddJobID']."'";

どんな助けでも素晴らしいでしょう。ありがとうございました。

4

1 に答える 1

1

そこにはほとんど解決策があります。

削除チェックボックスの名前を name="delete[]" に変更すると、複数のチェックボックスを 1 つの名前で投稿できるようになります。PHP 側では、次のように言ってこれらにアクセスできます。

if (isset($_POST['delete'])) {
    foreach($_POST['delete'] as $oddjob) {
        if (Delete_Oddjob($oddjob)) {
            // success
        } else {
            // failure
        }
    }
}

フォームが送信され、削除オプションが選択されている場合は常に、フォーム上のすべてのチェックボックスがループされ、ID を使用して削除されます。

于 2013-04-15T10:21:45.297 に答える