2013-05-10 74 views
2

我有一個表單並且它沒有創建帖子變量, 這是爲什麼?代碼如下。 函數createMedewerkerList();是不是try'd消除在那裏使用的所有功能,但它沒有工作,所以我geuss它是與此佈局表單不創建帖子變量

function writeHoursForm(){ 
echo '<form method="post" action="#">'; 

     echo '<div class="topWrapper">'; // open topwrapper 
      echo '<div class="employeeData">'; // open employeedata 
       echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'; 
        echo '<tr>'; 
         echo '<td>Werknemer</td>'; 
         echo '<td>'; 
          if (permissiesUren(0,0,1,false)){ 
           echo '<div class="ui-widget">'; 
           echo createMedewerkerList(); 
           echo '</div>'; 
          }else{ 
           echo $_SESSION['name']; 
           echo '<input name="medewerkerid" type="hidden" value="'.$_SESSION['id'].'">'; 
          } 
         echo '</td>'; 
        echo '</tr>'; 
        echo '<tr>'; 
         echo '<td>Weeknummer</td>'; 
         echo '<td><input name="week" type="text" value="'.$date1.'"></td>'; 
        echo '</tr>'; 
        echo '<tr>'; 
         echo '<td>Jaar</td>'; 
         echo '<td><input name="jaar" type="text" value="'.$date2.'"></td>'; 
        echo '</tr>'; 
        echo '</table>'; 
      echo '</div>'; // close omployeedata 
     echo '</div>'; // close topwrapper 

     echo '<div class="urenBriefWrap">'; // open urenbriefwrap 
      echo '<div class="urenBrief">'; // open urenbrief 
       echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'; 
        echo '<tr>'; 
         echo '<th>Projectnummer</th>'; 
         echo '<th>Omschrijving</th>'; 
         echo '<th>Uren<br>100%</th>'; 
         echo '<th>Uren<br>125% </th>'; 
         echo '<th>Uren<br>150% </th>'; 
         echo '<th>Kilometers<br>auto zaak</th>'; 
         echo '<th>Kilometers<br>auto prive</th>'; 
         echo '<th>Reisuren</th>'; 
        echo '</tr>'; 
        echo '<tr>'; 
         echo '<td width="139"><input name="projectnummer" type="text"></td>'; 
         echo '<td width="358">geen data beschikbaar</td>'; 
         echo '<td width="68"><input name="uren_100" type="text"></td>'; 
         echo '<td width="68"><input name="uren_125" type="text"></td>'; 
         echo '<td width="68"><input name="uren_150" type="text"></td>'; 
         echo '<td width="91"><input name="kilometers_zaak" type="text"></td>'; 
         echo '<td width="91"><input name="kilometers" type="text"></td>'; 
         echo '<td width="83"><input name="reisuren" type="text"></td>'; 
        echo '</tr>'; 
       echo '</table>'; 
      echo '</div>'; // close urenbrief 
     echo '</div>'; // close topwrapper 

     echo '<input class="submit" type="submit" name="submit" value="Verzenden">'; 
     echo '<input class="submit" type="submit" name="submit" value="Verzenden & nieuwe regel toevoegen">'; 
     if (permissiesUren(0,0,1,false)){ 
      echo '<input class="submit" type="submit" name="submit" value="Verzenden zonder tussencontrole">'; 
     } 
    echo '</form>'; 
} 

功能處理這種形式的問題 :

function urenRegisterParser(){ 
    if ($_SERVER['REQUEST_METHOD'] != 'POST'){ 
     writeHoursForm(); 
    } 
    else if($_POST['submit'] == 'Verzenden & nieuwe regel toevoegen'){ 
     writeHoursToDB(false, $_POST); 
     header('location: '.fullUrl().'urenregistratie/uren_invullen/?send=done'); 
    } 
    else if($_POST['submit'] == 'Verzenden'){ 
     $NaamId = writeHoursToDB(false, $_POST); 
     header('location: '.fullUrl().'urenregistratie/medewerkers/?NaamId='.$NaamId); 
    } 
    else if($_POST['submit'] == 'Verzenden zonder tussencontrole'){ 
     writeHoursToDB(true, $_POST); 
     header('location: '.fullUrl().'urenregistratie/uren_invullen/?send=done'); 
    } 
} 
+0

首先,破除一切'echo'es的。沒有必要用'echo'打印靜態內容。 – Antony 2013-05-10 15:02:51

+2

不要將'action'設置爲'#',所有的操作都會跳轉到一個定位點。或者將它留空或者調用相同的頁面來發布/重新加載 – kingkode 2013-05-10 15:04:08

+0

我做了所有的回顯,因此編輯起來更容易; p和when我按提交的其中一個,它不創建任何後變量(接受變量的地方說在var_dump($ _ POST):array(0){}) – 2013-05-10 15:05:46

回答

1

這裏它的答案...

不要設置action#一切確實是跳轉到一個錨..要麼留空或撥打同一個頁面後/重載

<form method="post" action=""> 

<form method="post" action="<?php echo request.getRequestURL(); ?>"> 
+0

您的意思是:

request.getRequestURL();?>」>? ; p try'd emty行動已經,didint工作btw – 2013-05-10 15:10:24

+0

不,'<?php echo request.getRequestURL(); ?>'會在'action'參數中打印當前的URL(http://...php)。你不想在'action'參數中回顯'