Puncte:-1

Cum adaug apel invers ajax la un element de formular care este creat într-o buclă foreach

drapel cn

Vă rugăm să consultați următorul cod:

foreach ($formaddresses ca $key => $val) {
  // Adăugați butoane de editare la adresele personalizate create de client.
  dacă (!isset($val['numărul de cont'])) {
    $form['orderinfo']['billshipaddresses']['billingaddresses'][$key]['#description'] = '<a class="edit-stored-address edit-stored-address-target-' . $ tasta . '">Editare</a>';
    $form['orderinfo']['billshipaddresses']['shippingaddresses'][$key]['#description'] = '<a class="edit-stored-address edit-stored-address-target-' . $ tasta . '">Editare</a>';
  }
}

Aici această buclă creează niște ancore în forma mea. Trebuie doar atașați/adăugați apel invers „#ajax”. la el. Cum pot realiza acest lucru?

Ceva de genul următor cod:

$form['orderinfo']['billshipaddresses']['shippingaddresses'] = [
  '#type' => 'radiouri',
  '#title' => 'Adresa de expediere',
  '#options' => $formaddressesOptions,
  '#default_value' => '',
  '#ajax' => [
    'callback' => '::buildShipBillAddresses',
    'wrapper' => 'adrese de expediere',
    'eveniment' => 'schimbare'
  ],
];

Aici putem vedea dacă radioul de mai sus se schimbă, atunci un apel invers ajax va funcționa și va apela această metodă buildShipBillAddresses Mulțumiri!

Puncte:1
drapel us

De fapt, elementul de ancorare la care doriți să adăugați un apel invers AJAX nu este un element de formular. The Ajax API pagina spune cum se declanșează AJAX pentru un link.

Adăugați clasa „use-ajax” la un link. Link-ul va fi încărcat folosind un apel Ajax. Când utilizați această metodă, href-ul link-ului poate conține „/nojs/” ca parte a căii. Când JavaScript Ajax procesează pagina, aceasta o va converti în „/ajax/”. Serverul poate spune cu ușurință dacă această solicitare a fost făcută printr-o cerere Ajax reală sau într-o stare degradată și să răspundă în mod corespunzător.

Aceasta înseamnă că pentru un link, următorul cod ar funcționa.

foreach ($formaddresses ca $key => $val) {
  // Adăugați butoane de editare la adresele personalizate create de client.
  dacă (!isset($val['numărul de cont'])) {
    $form['orderinfo']['billshipaddresses']['billingaddresses'][$key]['#description'] = '<a href="/nojs/edit-billing-address" class="use-ajax edit -stored-address edit-stored-address-target-' . $key . '">Edit</a>';
    $form['orderinfo']['billshipaddresses']['shippingaddresses'][$key]['#description'] = '<a href="/nojs/edit-shipping-address" class="use-ajax edit -stored-address edit-stored-address-target-' . $key . '">Edit</a>';
  }
}

Modulul trebuie să definească două rute pentru acele legături. Nu vă pot spune codul pentru acele apeluri inverse ale rutei, dar ar trebui să redea Editați | × formular pentru a-l face să apară pe acel formular.

Puncte:0
drapel de

Aceasta nu este cu adevărat o întrebare Drupal, ci o întrebare PHP, ci pentru a răspunde la întrebarea dvs.:

foreach ($formaddresses ca $key => $val) {
  // Adăugați butoane de editare la adresele personalizate create de client.
  dacă (!isset($val['numărul de cont'])) {
    $form['orderinfo']['billshipaddresses']['billingaddresses'][$key]['#ajax'] = [
      'callback' => '::buildShipBillAddresses',
      'wrapper' => 'adrese de expediere',
      'eveniment' => 'schimbare'
    ];
  }
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.