eu folosesc hook_form_alter()
cârlig pentru a adăuga un aplica butonul la formularul de editare a nodului.. Când utilizatorii dau clic pe acel buton, un apel invers AJAX înlocuiește valoarea câmpului de text.
Funcționează bine prima dată, dar a doua oară nu înlocuiește valoarea.
funcția curs_form_node_items_edit_form_alter(&$form, FormStateInterface $form_state) {
$form['aplica'] = matrice(
'#type' => 'trimite',
'#value' => t('Aplicați'),
'#weight' => '38',
'#executes_submit_callback' => FALSE,
'#limit_validation_errors' => array(),
'#ajax' => matrice(
'callback' => 'button_test_callback',
'wrapper' => 'edit-field-text-plain-0-value',
),
);
}
function button_test_callback(&$form, FormStateInterface $form_state) {
$item_id = $form['field_item_id']['widget'][0]['value']['#value'];
$sql = "SELECTARE nume_articol
DIN articole
WHERE field_item_id = '" . $item_id . "'";
$locatie = \Drupal::database()->query($sql)->fetchAssoc();
$form['field_text_plain']['widget'][0]['value']['#value'] = $location;
$form['field_text_plain']['widget']['0']['value']['#id'] = 'edit-field-text-plain-0-value';
returnează $form['field_text_plain'];
}
După primul clic, form_text_plain ID-ul se modifică la o valoare aleatorie, de exemplu edit-field-text-plain-0-value-xhfjwos. Se pare că asta este problema.
Există vreo modalitate de a evita form_text_plain modificări de identitate?