2014-06-20 28 views
0

我的問題似乎很容易awnser,但我無法找到我做錯了什麼。HTML提交不發送正確的數據

我的表單總是和我的HTML一樣,但是我的提交按鈕表單並沒有發送任何東西。它只發送一小部分數據。 這是我的形式;

<form id="page_access" name="page_access" class="form-horizontal" data-parsley-validate method="post"> 
      <div class="form-group"> 
       <label class="col-sm-2 control-label" for="currency">User</label> 
       <div class="col-sm-9"> 
        <select class="form-control" name="user"> 
         {foreach $users as $user} 
          <option value="{$user.id}">{$user.voornaam} {$user.tussenvoegsel} {$user.achternaam}</option> 
         {/foreach} 
        </select> 
       </div> 
      </div> 

      <br/> 

      <div class="form-group"> 
       <div class="col-md-12 col-sm-12 col-xs-12"> 
        <table class="table table-bordered"> 
         <thead> 
         <tr> 
          <th>Page</th> 
          <th>Index</th> 
          <th>Add</th> 
          <th>Edit</th> 
         </tr> 
         </thead> 
         <tbody> 
         {foreach $pages as $page} 
          <tr> 
           <td>{$page.nav_name}</td> 
           <td><input type="checkbox" {$page.access} value="page_{$page.id}"></td> 
           {if $page.0.id} 
           <td><input type="checkbox" {$page.0.access} value="page_{$page.0.id}"></td> 
           {else} 
           <td></td> 
           {/if} 
           {if $page.1.id} 
           <td><input type="checkbox" {$page.1.access} value="page_{$page.1.id}"></td> 
           {else} 
           <td></td> 
           {/if} 
          </tr> 
         {/foreach} 
         </tbody> 
        </table> 
       </div> 
      </div> 
      <div class="row"> 
       <div class="col-md-12 m-t-20 m-b-40 align-center"> 
        <button type="submit" value="page_access" id="page_access" name="page_access" class="btn btn-success m-t-10"> 
         <i class="fa fa-check"></i> {$LANG.edit_button} 
        </button> 
       </div> 
      </div> 
      </form> 

我使用smarty作爲模板引擎。所有使用smarty生成的信息都能正常工作。

這是我的PHP趕數據:

if($_POST['page_access']){ 

var_dump($_POST);die; 
$settings = new Settings(); 
$validation = $settings->ValidatePageSettings($array); 


if(is_array($validation)){ 
    $result = $settings->EditPageSettings($validation); 
    if($result > 0) { 
     $smarty->assign("added_id", $result); 
    } 
}else{ 
    $smarty->assign("errormsg", $validation); 
} 
} 

我這段代碼的結果:

array(2) { ["user"]=> string(4) "2129" ["page_access"]=> string(11) "page_access" } 

我想要的結果是讓每個頁面的ID,以1 0訪問。 相反,它只會返回1頁。

+0

我想你可能想看看'複選框'的規範;他們通常有一個共享的「名稱」標籤。另外,變量'{$ page.access}'在你的複選框定義的中間插入了什麼? – Sanchises

+0

{$ page.access}將輸出檢查用戶是否已經有權訪問該頁面。 – killstreet

回答

0

您只需將name屬性添加到您的複選框。

例如,對於在循環第一個複選框,而不是

<input type="checkbox" {$page.access} value="page_{$page.id}"> 

你需要有

<input type="checkbox" name="checkbox_1" {$page.access} value="page_{$page.id}"> 
        ^

當你點擊提交按鈕,這樣的數據將發送

編輯

這就是問題巧妙地你想要什麼:

{foreach $pages as $page} 
    <tr> 
     <td>{$page.nav_name}</td> 
     <td><input type="checkbox" name="{$page.nav_name}[index]" value="1"></td> 
     {if $page.0.id} 
     <td><input type="checkbox" name="{$page.nav_name}[add]" value="1"></td> 
     {else} 
     <td><input type="checkbox" name="{$page.nav_name}[add]" value="0"></td> 
     {/if} 
     {if $page.1.id} 
     <td><input type="checkbox" name="{$page.nav_name}[edit]" value="1"></td> 
     {else} 
     <td><input type="checkbox" name="{$page.nav_name}[edit]" value="0"></td> 
     {/if} 
    </tr> 
{/foreach} 
+0

添加name屬性確實改變了一些東西。然而,返回的數組仍然不是它應該的。 我希望它返回一個大數組,它包含與值的每一頁1或0 EG:客戶指數有1個,但客戶-編輯有0 當前數組返回= '陣列( 5){[「user」] => string(4)「2129」[「index」] => string(7)「page_21」[「add」] => string(7)「page_15」[「edit」] => string(7)「page_19」[「page_access」] => string(11)「page_access」}' – killstreet

+0

它應該是什麼?我在這個問題上沒有看到任何要求。 –

+0

對不起,但我們不知道什麼是頁面,它們的價值和想要達到的目標。你需要編輯你的問題,並詳細解釋你想要什麼,可能是在新的問題。 –

相關問題