I am writing a Yii application (or I should say building on top of someone else's Yii application!). I need to use quite a lot of javascript, because I'm using the Leaflet map library. So a lot of this is external to the PHP code and called with registerScriptFile
, registerScript
etc.
To get data from the javascript into the main Yii application, I have been using AJAX calls.
$.ajax({
type: "POST",
url: "xxx/index.php/site/updateajax",
data: {recordID: feature.properties.id}
}).success(function(result){
$("#recordTable").replaceWith(result);
});
and
public function actionUpdateAjax()
{
$data = $_POST['recordID'];
$this->renderPartial('/map/_legend_layers', array('data' => $data),false,false);
}
in the php. I discovered I needed to call $("#element").replaceWith(result);
because otherwise the rendering was being returned but not being rendered.
In this case this works OK because I can call replaceWith, but I have a nagging feeling this isn't the right way to do it, and also I have another AJAX call that renders a whole page so I can't really replace that.
My question is how can I either force the html returned by these AJAX calls to render the page, or more likely I suppose, how can I just use AJAX to update a variable, return back a success code or something, then let the yii code carry on and do it's thing - I'm only using AJAX as a variable passing mechanism.
Thanks