it-swarm.com.de

So übergeben Sie Variablen über $ .ajax an einen Controller

Ich habe einige Teile von Codes gefunden, weiß aber nicht, wie ich sie vervollständigen soll. Ich muss einige Variablen über Ajax an den Controller übergeben, um sie in der Joomla-Sitzung zu speichern. Also ich habe den Code:

<input type="text" name="id" value="2" />

$('.add').click(function() {
 $.ajax({
  method: "POST",
  url: "index.php?option=com_mycom&task=add&format=raw",
  data: {id:1},
  dataType: 'json'
 }).done(function() {
   alert("Data Saved");
  });
 return false;
});

und der Code im Controller:

public function add() {
    $session = JFactory::getSession();
    $value = ???
    $cart = array();
    $cart['item'] = array('id' => $value);
    $session->set('cart', $cart);
}

Wie Sie sehen, weiß ich nicht, wie ich Daten in den Controller bekommen soll (und ich bin nicht sicher, ob ich sie richtig in $ .ajax sende). Und brauche ich wirklich json in meinem Fall?

2
stckvrw

Sie sollten die JInput-Klasse von Joomla verwenden https://docs.joomla.org/Retrieving_request_data_using_JInput

z.B.

public function add() {

  // Get Joomla's input object:
  $input = JFactory::getApplication()->input;

  // Get the variable
  $value = $input->get('id');

  $session = JFactory::getSession();
  $cart = array();
  $cart['item'] = array('id' => $value);
  $session->set('cart', $cart);
}
9
Rob Clayburn

Ja, Sie möchten die Eingabe verwenden.

$input = JFactory::getApplication()->input;    
$value = $input->get('id');
1
Mathew Lenning