2013-04-14 2 views
0

프로필의 사용자에 대한 현재 서비스 정보를 표시하는 양식을 만든 다음 사용자가 제공하는 하나 이상의 서비스에 대한 확인란을 선택한 다음 삭제 단추를 누르는 것을 허용하는 양식을 만들려고합니다. 확인란과 관련된 서비스를 제거합니다. 각 서비스에는 고유 한 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']."'"; 

도움이 될 것입니다. 고맙습니다.

답변

1

당신은 해결책이 있습니다.

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

때마다를 :

= "[] 삭제"이름에 삭제 체크 박스의 이름을 바꾸는 것이 여러 확인란 말하여이 액세스 할 수있는 사물의 PHP 측에서 그런 다음, 하나의 이름 아래에 게시 할 수 있습니다 양식이 제출되고 h 제 옵션이 선택되면 양식의 모든 선택된 선택란을 반복하고 ID를 사용하여 h 제하십시오.

+0

관련없는 메모, 체크 박스의 DEselections에 의존하는 미래의 기능을 원할 수 있다면 선택하지 않은 체크 박스는 $ _POST를 통과하지 않는다는 것을 기억하십시오. –

관련 문제