Veritabanına göndererek zaman Formu değerleri boş görünür - Drupal FormAPI

1 Cevap php

Ben geçen hafta ve yarısı için bu drupal formu API senaryo üzerinde çalışıyoruz. Benim sorunun içine bir fikir vermek için .. aşağıdaki formu sadece 5 bireysel puanlama saflarına içeren veritabanı kayıtları bir dizi listeler. (Zihin, eylem, ilişki, dil ve BT).

Bu kod dışında tüm değerleri veritabanından listelenir benim kendi özel modül olduğunu. Bu modül arkasındaki fikir, bir büyük ölçekte bu değerleri düzenlemek mümkün olmaktır.

Ben sorun marli_admin_submit işlev içinde değişkenleri geçirilecek forma girilen değerler alma yaşıyorum. İkinci sorun kendi özel kimlik için bu değerler atama değildir. Bu amaçla kimliği sadece ziyade hepsinden daha güncellenmiş sadece bir puan almaya çalışırken im eklemek istiyorum için.

Aşağıda benim kodudur.

herhangi bir tavsiye takdir.

function marli_scores(){
  $result = pager_query(db_rewrite_sql('SELECT * FROM marli WHERE value !=  " "'));

  while ($node = db_fetch_object($result)) {
    $attribute = $node->attribute;
    $field = $node->field_name;
    $item = $node->value;
    $mind = $node->mind;
    $action = $node->action;
    $relationship = $node->relationship;
    $language = $node->language;
    $it = $node->it;
    $form['field'][$node->marli_id] = array('#type' => 'markup', '#value' => $field, '#prefix' => '<b>', '#suffix' => '</b>');
    $form['title'][$node->marli_id] = array('#type' => 'markup', '#value' => $item, '#prefix' => '<b>', '#suffix' => '</b>');
    $form['mind'][$node->marli_id] =  array('#type' => 'textfield', '#maxlength' => '1', '#size' => '1', '#value' => $mind);
    $form['action'][$node->marli_id] = array('#type' => 'textfield', '#maxlength' => '1', '#size' => '1', '#value' => $action);
    $form['relationship'][$node->marli_id] =  array('#type' => 'textfield', '#maxlength' => '1', '#size' => '1', '#value' => $relationship);
    $form['language'][$node->marli_id] = array('#type' => 'textfield', '#maxlength' => '1', '#size' => '1', '#value' => $language);
    $form['it'][$node->marli_id] =  array('#type' => 'textfield', '#maxlength' => '1', '#size' => '1', '#value' => $it);

  }
  $form['pager'] = array('#value' => theme('pager', NULL, 50, 0));
  $form['save'] = array('#type' => 'submit', '#value' => t('Save'));
  $form['#theme'] = 'marli_scores';
  return $form;
}

function marli_admin_submit($form, &$form_state) {

    $marli_id = 4;
    $submit_mind = $form_state['values']['mind'][$marli_id];
    $submit_action = $form_state['values']['action'][$marli_id];
    $submit_relationship = $form_state['values']['relationship'][$marli_id];
    $submit_language = $form_state['values']['language'][$marli_id];
    $submit_it = $form_state['values']['it'][$marli_id];

    $sql_query = "UPDATE  {marli} SET mind =  %d, action =  %d, relationship = %d, language =  %d, it =  %d WHERE  marli_id = %d";


  if ($success = db_query($sql_query, $submit_mind, $submit_action, $submit_relationship, $submit_language, $submit_it)) {

    drupal_set_message(t(' Values have been saved.'));
  }
  else {
    drupal_set_message(t('There was an error saving your data. Please try again.'));
  }

}

1 Cevap

I ilan nerede sorun oldu

 $form['mind'][$node->marli_id] =  array('#type' => 'textfield', '#maxlength' => '1', '#size' => '1', '#value' => $mind);

# değeri, aksi takdirde geçersiz kılma tutar .. # DEFAULT_VALUE olması gerekir.