Dependent Dropdown, Wert wird nicht aktualisiert

Hallo zusammen :)

Ich habe mir ein Dependent Dropdown gebaut aber die Werte im Zweiten Dropdown werden nicht aktualisiert. Nach inzwischen stundenlangem herumprobiern, würde ich mich freuen wenn Ihr mir meinen Fehler aufzeigen könntet.

_form:


	<div class="row buttons">

		<?php echo $form->labelEx($model,'serverclass'); ?>

		<?php echo CHtml::dropDownList('serverclass','', array(1=>'Server', 2=>'Virtuell'),array('ajax' => array('type'=>'POST','url'=>'CController::createUrl(dynclass)', 'data'=>array('serverclass'=>'js:this.value'),'update'=>'#serverid',

																	))); ?>

		<?php echo $form->error($model,'serverclass'); ?>

	</div>


	<div class="row buttons">

		<?php echo $form->labelEx($model,'serverid'); ?>

		<?php	echo CHtml::dropDownList('serverid', $model->serverid, CHtml::listData(Server::model()->findAll(),'ID','name')); ?>

		<?php echo $form->error($model,'serverid'); ?>

	</div> 

controller:




	public function actionDynClass()

	{

		if ($_POST[$this]['serverclass'] == '1')

		{

			$serverclass='Server';

		}

		else 

		{

			$serverclass='Virtual';

		}

    $data=$serverclass::model()->findAll();

    $data=CHtml::listData($data,'ID','name');

    foreach($data as $value=>$name)

    {

    	echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);

    }

	} 




			array('allow', // allow authenticated user to perform 'create' and 'update' actions

				'actions'=>array('create','update','dynclass'),

				'users'=>array('@'),

			),



Also eigentlich sauber nach Tutorial nachgebaut. Es scheint als würde der Ajax request allerdings nie die action aufrufen. Ich bin echt am verzweifeln.

Gruß Phip

Die kleine Fehler die einen verzeifeln lassen ;) Du hast die url beim Ajax request falsch gequotet…

Falsch:


'url'=>'CController::createUrl(dynclass)'

Richtig:


'url'=>CController::createUrl('dynclass')

Am besten immer beim Ajax-Request zum testen noch:


'error'=>'function(data) { console.log(data) }'

mit ins Array packen, dann hätte er in deinem Fall in der Javascript console angezeigt das die Url nicht stimmt…

Ach ich Depp, man sollte beim Tutorial nachbaun auch genau aufpassen. Danke dir vielmals, insbesonders für den Tip mit der JavaConsole.

Oh da hab ich jetzt aber auch noch ein Fehler eingebaut.

Die Zeile für die Console-Ausgabe muss:


'success'=>'function(data) { console.log(data) }'

latuen. Error triggert nur wenn das Ajax Request fehlschlägt, in dem Fall läuft das Request aber sauber durch nur an die falsche Addresse ^^