2016-06-08 3 views
1

그래서 양식에 이상한 문제가 발생했습니다. oplsaan 버튼을 클릭하면 (isset ($ _ POST [ 'opslaan']))의 코드를 실행하지 않습니다. 문제는 PHP가 $ _POST 배열에 양식 데이터를 저장하지 않는다는 것입니다. 예를 들어, 때 다음과 같은 형태로 opslaan 클릭PHP - 양식이 POST에 데이터를 저장하지 않습니다.

if(isset($_POST['wijzigen'])) 
    { 
        $query_selecteren = 'SELECT * 
             FROM contacten'; 

        $result = mysqli_query($link, $query_selecteren); 

        echo '<form id="wijzigingscherm" method="post" action="' . $_SERVER['PHP_SELF'] . '">'; 
         echo '<table> 
          <tr> 
           <th>Keuze</th> 
           <th>Afbeelding</th> 
           <th>Voornaam</th> 
           <th>Achternaam</th> 
           <th>Woonplaats</th> 
           <th>Telefoonnummer</th> 
           <th>Adres</th> 
           <th>Postcode</th> 
           <th>Opmerking</th> 
          </tr>'; 
          foreach ($result as $rij) { 
           echo '<tr>'; 
            $rijnr%2==0 ? $rijkleur='#6B9ED1' : $rijkleur='#99B3CC'; 
            echo '<td style="background-color' . $rijkleur .'"> <input type="checkbox" name="checkedUser" value="' . $rij['contact_id'] . '"/>'; 
            echo '<td style="background-color'.$rijkleur.'"> <img src="ImgPersonen/profiel.jpg"/>'; 
            echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="voornaam" placeholder="' . $rij['vnaam'] .'"/></td>'; 
            echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="achternaam" placeholder="' . $rij['anaam'] . '"</td>'; 
            echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="woonplaats" placeholder="' . $rij['wplaats'] . '"/></td>'; 
            echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="telefoonnummer" placeholder="' . $rij['tnummer'] . '"/></td>'; 
            echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="adres" placeholder="' . $rij['adres'] . '"/></td>'; 
            echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="postcode" placeholder="' . $rij['postcode'] . '"/></td>'; 
            echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="opmerking" placeholder="' . $rij['opmerking'] . '"/></td>'; 
            $rijnr++; 
           echo '</tr>'; 
          } 
         echo '</table> 
         <input type="submit" name="opslaan" style="width:15%;" value="Opslaan" /> 
         <input type="submit" name="annuleren" style="width:15%;" value="Annuleren" /> 
        </form>'; 
    } 

그것은 내가으로 session_start

if(isset($_POST['opslaan'])) 
{ 
    $query_opslaan = 'a query using the post data'; 

    mysqli_query($link, $query_opslaan) or die(mysqli_error($query_opslaan));      

    header('location:'.$_SERVER['PHP_SELF']); 
} 

아래에 위치하지만 이상한 것은 그 경우 (는 isset ($ _ POST [입니다이 코드를 실행해야합니다 'osplaan'])) 어떤 이유로 작동하지 않습니다 그리고 난 정말 내가 여기서 뭘 잘못하고 있는지 모르겠어! 누군가 내가 여기서 뭘 잘못하고 있는지 말해 줄 수 있습니까?

+0

($를 _POST)' –

+0

그냥 배열()과 다른 것 –

답변

1

입력란 중 하나가 올바르게 닫히지 않았습니다 : achternaam 따라서 실제로 예상치 못한 결과가 나타날 수 있습니다. 아래는 대신에 시도하고 싶은 것입니다. 당신의 양식 태그는이 작업을 위해 루프 내에 중첩되어야한다

이라고 신청서 PART

<?php 
     if(isset($_POST['wijzigen'])) { 
      $query_selecteren = 'SELECT * 
               FROM contacten'; 

      $result = mysqli_query($link, $query_selecteren); 
      $count = 1; 

      echo '<table> 
            <tr> 
             <th>Keuze</th> 
             <th>Afbeelding</th> 
             <th>Voornaam</th> 
             <th>Achternaam</th> 
             <th>Woonplaats</th> 
             <th>Telefoonnummer</th> 
             <th>Adres</th> 
             <th>Postcode</th> 
             <th>Opmerking</th> 
             <th>Edits</th> 
            </tr>'; 
      foreach ($result as $rij) { 
       echo '<form id="wijzigingscherm" method="post" action="' . $_SERVER['PHP_SELF'] . '">'; 
       echo '<tr>'; 
       $rijkleur = ($rijnr%2==0) ? '#6B9ED1' : '#99B3CC'; 
       echo '<td style="background-color' . $rijkleur .'"> <input type="checkbox" name="checkedUser" value="'     . $rij['contact_id'] . '"/>'; 
       echo '<td style="background-color' .$rijkleur.'"> <img src="ImgPersonen/profiel.jpg"/>'; 
       echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="voornaam" placeholder="'   . $rij['vnaam']   . '" value="' . $rij['vnaam']  . '" /></td>'; 
       echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="achternaam" placeholder="'  . $rij['anaam']   . '" value="' . $rij['anaam']  . '" /></td>'; 
       echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="woonplaats" placeholder="'  . $rij['wplaats']  . '" value="' . $rij['wplaats']  . '" /></td>'; 
       echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="telefoonnummer" placeholder="' . $rij['tnummer']  . '" value="' . $rij['tnummer']  . '" /></td>'; 
       echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="adres" placeholder="'   . $rij['adres']   . '" value="' . $rij['adres']  . '" /></td>'; 
       echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="postcode" placeholder="'  . $rij['postcode']  . '" value="' . $rij['postcode'] . '" /></td>'; 
       echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="opmerking" placeholder="'  . $rij['opmerking']  . '" value="' . $rij['opmerking'] . '" /></td>'; 
       echo '<td style=""> 
       <input type="submit" name="opslaan" style="width:15%;"  value="Opslaan" /><br /> 
       <input type="reset" name="annuleren" style="width:15%;"  value="Annuleren" /><br/> 
       </tr>; 
      </form>'; 
       $rijnr++; 
       $count++; 


      } 
      echo '</table>'; 
     } 

처리 PART 당신이 인 print_r`에서 볼 일을

 if(isset($_POST['opslaan'])){ 
       //THIS IS WHERE AND WHEN YOU GATHER THE POSTED DATA FROM THE FORM... 
       $voorname   = isset($_POST['voorname'])   ? htmlspecialchars(trim($_POST['voorname']))  : null; 
       $achternaam   = isset($_POST['achternaam'])  ? htmlspecialchars(trim($_POST['achternaam']))  : null; 
       $woonplaats   = isset($_POST['woonplaats'])  ? htmlspecialchars(trim($_POST['woonplaats']))  : null; 
       $telefoonnummer  = isset($_POST['telefoonnummer']) ? htmlspecialchars(trim($_POST['telefoonnummer'])) : null; 
       $adres    = isset($_POST['adres'])   ? htmlspecialchars(trim($_POST['adres']))   : null; 
       $postcode   = isset($_POST['postcode'])   ? htmlspecialchars(trim($_POST['postcode']))  : null; 
       $opmerking   = isset($_POST['opmerking'])  ? htmlspecialchars(trim($_POST['opmerking']))  : null; 

       // NOW YOU CAN USE THE ABOVE VARIABLES IN YOUR QUERY, SHOULD YOU NEED TO... 
       $query_opslaan  = 'a query using the post data'; 
       mysqli_query($link, $query_opslaan) or die(mysqli_error($query_opslaan)); 
       header('location:'.$_SERVER['PHP_SELF']); 
     } 
+0

쿼리는 opslaan 함수에서 실행되지만 $ _POST [ 'voorname'] 등의 데이터에는 여전히 값이 없습니다 –

+0

@B. Hulshof'if (isset ($ _ POST [ 'wijzigen'])) {'를 읽는 부분을 확인하십시오. 아무도 $ 결과에 약간의 데이터가 포함되어 있는지 알 수 있습니다. foreach ($ result as $ rij) {'는 다른 검사 할 영역입니다. 먼저 $ result = mysqli_query ($ link, $ query_selecteren) 다음에 var_dump를 수행하는 것이 좋습니다. var_dump ($ result); exit; 당신이 얻는 것을보기 위해서 ... – Poiz

+0

foreach 루프에 데이터가 들어 있습니다. 나는 이것이 자리 표시자인 –

관련 문제