Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] How to pass javascript variables to a zone ?

Posted by pheromix on 04/01/2016 10:48

When the page loads :

class defaultCtrl extends jController {
    /**
    *
    */
    function index()
    {
    	jClasses::inc("commun~toolsSrv") ;
    	
        $oResp = $this->getResponse('html');
        
        $oResp->bodyTpl = "utilisateurs~FoHome" ;
        
        $zUrlGetZone	= jUrl::get("commun~default:getZone") ;
        
        // list of profiles
        $toProfils	= toolsSrv::getAllProfils() ;
        
        $oResp->body->assignZone('oZoneListe', 'utilisateurs~FoListeUtilisateurs', array()) ; // this will be for a dataTable-like zone
        
        $oResp->body->assign("zUrlGetZone", $zUrlGetZone) ;
        $oResp->body->assign("toProfils", $toProfils) ; // this will feed a listbox #selectProfil

        return $oResp;
    }

The template :

<select name="selectProfil" id="selectProfil">
                  <option value="0">--- Tous ---</option>
                  {foreach $toProfils as $oProfil}
                  <option value="{$oProfil->id_profil}">{$oProfil->lib_profil}</option>
                  {/foreach}
                </select>
<br />
        <div class="ajaxZone">
        	{$oZoneListe}
        </div>

Code of commun~default:getZone :

function getZone() {
        
		$oResp = $this->getResponse('text');

		$zZone = $this->param('zone');
		
		if (is_null($zZone)) {
			throw new Exception('ParamĂȘtre zone requis');
		}
		$tParams = $GLOBALS['gJCoord']->request->params;
        
		$oResp->content = jZone::get($zZone, $tParams);

        return $oResp;
	}

When the #selectProfil listbox changes then I want to filter the results displayed on the zone oZoneListe :

{literal}
<script type="text/javascript">
	$(function()
	{
           $("#selectProfil").change(
			function()
			{
				var iProfilId	= $(this).val() ;
                
				var zSrc			= '{/literal}{$zUrlGetZone}{literal}' ;
				var zone			= 'utilisateurs~FoListeUtilisateurs' ;
				$(".ajaxZone").load(zSrc, {zone:zone, iProfilId:iProfilId}) ;
			}
		) ;
        }) ;
</script>

So I want to filter the zone when the listbox changes. The problem is that I cannot get the parameter iProfilId inside the zone ! So how to pass this javascript variable to the zone ?

 
Page
  1. How to pass javascript variables to a zone ?