AJAX Form absenden und verarbeiten

Hallo,

ich habe gerade meine liebe not mit Yii und ajax. Wie kann ich den eine Form absenden und diese Werte dann in einer bereits vorhanden Action ausführen. Die Werte sollen dabei über Post übergeben werden. Dazu soll ein Button verwendet werden. Ich hoffe ihr könnt mir helfen.

Grüße

Martin

Hilft dir das hier weiter:

http://www.yiiframework.com/forum/index.php?/topic/4708-formular-per-ajax-submitten-und-error-anzeigen-bzw-die-anderungen-speichern/

Habe just in diesen Moment genau das realisiert, was du vorhast.

Das Geheimnis ist der ajaxSubmitButton

In etwa so:




<?php

echo CHtml::form();

echo CHtml::DropDownList("searchid", " - Suche nach - ",

CHtml::listData(Tags::model()->findAll(), "id", "Tag"));

echo CHtml::ajaxSubmitButton('Suchen', CHtml::normalizeUrl(array('site/search')), array('update' => '#result'));

echo CHtml::endForm();

?>


</form>

<?php if (!Yii::app()->user->isguest) {

echo CHtml::link("[ Suchoptionen bearbeiten ]", array("tags/admin"));

}

?>

<div id="result">

</div>



Dann im Controller:




 public function actionSearch() {

    $tag = Tags::model()->findByPk($_POST['searchid']);

    $sites = $tag->sites;

    $this->renderPartial('result', array('sites' => $sites));

}



Und, weils so schön ist, liefere ich auch noch meinen result-view dazu mit aus:




<?php if($sites == array()): echo "Keine Ergebnisse gefunden."; else: ?>

Suchergebnisse:


<ul>

<?php

foreach($sites as $site) {

  echo "<li>".CHtml::link($site->title, CController::createUrl('site/show', array('id' => $site->id)))."</li>";

}

?>

</ul>


<?php endif; ?>



Eigentlich schon selbsterklärend - bei konkreten Fragen bitte nochmal hier deine Frage präzisieren.

Funktioniert super, vielen dank!

Noch ein kleiner Zusatz. Vielleicht sollte man das Beispiel ins Cookbook aufnehmen da dort recht wenig zum Thema AJAX vorhanden ist.

Wie verhält sich das eigentlich mit normalem selbst eingefügem js code. Gibt es da methoden um de zu registrieren oder wie sollte das am besten gehandhabt werden? Extra File?