actionDelete e POST vars ....

Salve qualcuno saprebbe dirmi perchè questa benedetta actionMioDeletePersonalizzato(), nonostante gli passi un valore via POST(ajax) continua a dirmi “Your request is invalid.” ? :angry:

tnx

p.s.

la action incriminata !


public function actionMioDeletePersonalizzato($id)

	{

		if(Yii::app()->request->isPostRequest)

		{

			// we only allow deletion via POST request

			$this->loadModel($_POST['id'])->delete();


			// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser

//			if(!isset($_GET['ajax']))

//				$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));

		}

//		else

//			throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');

	}

ciao pascuale !

what is exactly the error ? please copy and paste here.

( your action cannot be called as a GET, because: "[color=#000088][size=2]if[/size][/color][color=#666600]size=2" )

[/size][/color]

Try to remove $id parameter from method parameters.

Dovrebbe funzionare utilizzando $_POST invece di $_GET


public function actionMioDeletePersonalizzato($id)

	{

		if(Yii::app()->request->isPostRequest)

		{

			// we only allow deletion via POST request

			$this->loadModel($_POST['id'])->delete();


			// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser

			if(!isset($_POST['ajax']))

				$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));

		}

//		else

//			throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');

	}

oppure prova ad aggiungere come secondo parametro della action: $ajax.

Utilizza poi la variabile attuale $ajax al posto di $_GET[‘ajax’]


public function actionMioDeletePersonalizzato($id, $ajax)

	{

		if(Yii::app()->request->isPostRequest)

		{

			// we only allow deletion via POST request

			$this->loadModel($_POST['id'])->delete();


			// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser

			if(!isset($ajax))

				$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));

		}

//		else

//			throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');

	}

ho avuto il tuo stesso problema in passato…e mi sono accorto che se il parametro che passi in post è del tipo $orderId ,il parametro del metodo actionMioDeletePersonalizzato($id) si aspetta $orderId e non $id!

Esatto: le variabili che si passano alla richiesta, devono corrispondere a quelle passate al metodo action.