public function executeAjaxFindCriteria(sfWebRequest $request) { if (!$request->isXmlHttpRequest()) { $this->forward404(); } if (!$request->hasParameter("mapping_type")) { throw new Exception("ajax_query does not exist"); } $selMappingType = $request->getParameter("mapping_type"); $c = new Criteria(); $crit1 = $c->getNewCriterion(EnumItemPeer::PARENT_ID, EnumItemPeer::MAPPING_ITEMS_NODE_ID); $crit2 = $c->getNewCriterion(EnumItemPeer::DESCR, trim($selMappingType)); $c->addAnd($crit1); $c->addAnd($crit2); $selMappingType = EnumItemPeer::doSelectOne($c); if (!isset($selMappingType)) { return sfView::NONE; } echo "<script type='text/javascript'>var selEl = document.getElementById('mapping_table').rows[parseInt(selected_row_index)+1].cells[4].children[0]; selEl.innerHTML=\""; if ($selMappingType->getId() == EnumItemPeer::MAPPING_QUESTION) { $c = new Criteria(); $crit1 = $c->getNewCriterion(RatingFieldPeer::TYPE_ID, EnumItemPeer::RATING_BOOLEAN); $crit2 = $c->getNewCriterion(EnumItemPeer::PARENT_ID, EnumItemPeer::RATING_SCALE); $crit1->addOr($crit2); $c->addAnd($crit1); $criteria = RatingFieldPeer::doSelectJoinEnumItem($c); foreach ($criteria as $criterion) { echo "<option value=", $criterion->getId(), ">", $criterion->getDescr(), "</option>"; } } else { echo "<option value=''></option>"; } echo "\"; makeSelectSelection(selEl, document.getElementById('mapping_criterion'));"; echo "fetchScales(document.getElementById('mapping_criterion').value);</script>"; return sfView::NONE; }