Domanda

Sono un super principiante in PHP e sto usando un framework PHP MVC chiamato YII. Non riesco a trovare articoli che spiegano come ottenere valori di elementi HTML con PHP. Ovunque guardo, è tutto su come ottenere valori dai campi da forma dopo un post in qualche altra vista. C'è comunque per ottenere valori di campo e inviarli a un controller in PHP e tornare alla vista originale.

In .NET MVC uso solo jQuery per ottenere campi da modulo e fare una chiamata AJAX. Non sono dati sensibili, quindi non sono preoccupato per la sicurezza. Mi piace Ajax perché non faccio alcun post di pagina, mando solo i miei dati e rimango sulla stessa pagina in cui mi trovavo.

C'è un modo per fare un tipo di cosa MVC Ajax con PHP? Leggi i valori degli elementi HTML e inviali a un controller per la manipolazione dei dati?

È stato utile?

Soluzione

Funziona allo stesso modo. Yii viene in bundle con jQuery, quindi tu

Basta usare jQuery per ottenere campi da forma e fare una chiamata Ajax

Ad qualche funzione controller, fai quello che vuoi con esso e restituisci una risposta, con PHP echo.

Se conosci già un po 'di jQuery, il lato del client non dovrebbe essere molto diverso da .NET MVC.

Modificare:
Per aggiungere un <script> All'HTML generato vedi RegisterScript.

Per creare URL usa il file Createurl funzione.

Per aggiungere opzioni AJAX al codice dei tag HTML sembra simile a:

echo CHtml::checkBox('mybox',false,
  array(// array for htmloptions, we also pass ajax options in here
    'class'=>'checkBoxes_class',
    'ajax'=>array(// this is ajax options for jquery's ajax
      'type'=>'POST',
      'url'=>Yii::app->createUrl('xyz',array('clickedboxid'=>'mybox')), // here you passed clickedboxid as a get variable
      'beforeSend'=>'function(){}',
      'success'=>'',
      // etc etc
    )
  )
);

Ogni funzione HTML Tag Generator Helper prende l'array HTMloptions, dove possiamo anche passare Opzioni Ajax.

Durante la lettura di questi valori nel controller:

public function actionSomeAction($id){
   // $id is mybox
   echo "Hello"; // this is returned as response to the client
}

Spero che ti basta per iniziare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top