2

複数のテキストフィールドを持つフォームを作成しました。テキストフィールドは DB からデフォルト値を取得します。フォームはテーブル内にありますが、一部のセルが消えます。DB のいくつかの値を変更すると、それらが表示される可能性があるため、奇妙です。誰でも助けることができますか?

$matches = competition_entry_load(); 
    $form['namefield'] = array(
    '#type' => 'fieldset',
    '#title' => t('check'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );

  foreach ($matches as $key=>$entry) {
    $A1 = $entry->A1;   
    $AX = $entry->AX;
    $A2 = $entry->A2;
    $home_team = $entry->home_team;
    $away_team = $entry->away_team;


    $form['namefield'][$A1] = array(
    '#type' => 'textfield',
    '#default_value' => $A1,
    '#size' => 6,
    '#maxlength' => 6,
    '#prefix' => '<table border=0 cellspacing=30 celladding=30><tr><td><center>',
    '#suffix' => '</center></td>',
  ); 



    $form['namefield'][$AX] = array(
    '#type' => 'textfield',
    '#default_value' => $AX,
    '#size' => 4,
    '#maxlength' => 4,
    '#prefix' =>'<td><center>',
    '#suffix' => '</center></td>',
  ); 

    $form['namefield'][$A2] = array(
    '#type' => 'textfield',
    '#default_value' => $A2,
    '#title'=> t($A2),
    '#size' => 4,
    '#maxlength' => 4,
    '#prefix' =>'<td><center>',
    '#suffix' => '</center></td>',
  ); 

    $form['namefield'][$home_team] = array(
    '#type' => 'textfield',
    '#default_value' => $entry->home_team,
    '#size' => 15,
    '#maxlength' => 15,
    '#prefix' =>'<td><center>',
    '#suffix' => '</center></td>',
  ); 

    $form['namefield'][$away_team] = array(
    '#type' => 'textfield',
    '#default_value' => $entry->away_team,
    '#size' => 15,
    '#maxlength' => 15, 
    '#prefix' =>'<td><center>',
    '#suffix' => '</center></td>',
  );


    $form['namefield']['skorH_'.$home_team] = array(
    '#type' => 'textfield',
    '#size' => 1,
    '#maxlength' => 1,
    '#prefix' =>'<td><center>',
    '#suffix' => '</center></td>',
  ); 

    $form['namefield']['skorA_'.$home_team] = array(
    '#type' => 'textfield',
    '#size' => 1,
    '#maxlength' => 1,
    '#prefix' =>'<td><center>',
    '#suffix' => '</center></td></tr></table>',
  ); 
}

return $form;
}
4

1 に答える 1

0

$form 配列のキーとして使用している変数値にバグがあると思います。ループ内で $A1、$A2 などの値が繰り返される場合、値はオーバーライドされます。$A1、$A2 などの値が一意であることを確認します。

于 2012-12-14T06:05:53.760 に答える