Thanks Brad.

 

Now I had one other question. Let's say my data looks like this:

{"identifier":"TERRITORY","items":[

{"SUB":"8-8-19-6","TERRITORY":"8-8-19-66-1-3-25"},

{"SUB":"8-8-19-6","TERRITORY":"8-8-19-66-1-2-24"}, ......

 

Instead of this:

{"identifier":"name","items":[

{"name":0,"0":"Lion"},

{"name":1,"0":"Cheeta"},

{"name":2,"0":"Cat"}, .......................

 

 

I want to USE the SUB values to get the values for the TERRITORY. How do
I do that? 

________________________________

From: Bart McLeod [mailto:mcl...@spaceweb.nl] 
Sent: Monday, April 27, 2009 11:22 AM
To: 411161
Cc: fw-general@lists.zend.com
Subject: Re: [fw-general] How to set up dependant dropdowns in form

 

You should be using dojo selects in the first place, I have a working
example (4files):
file index.phtml (in scripts/ directory)
<?php echo $this->doctype() ?>
<html>
<head>
    <?php echo $this->headTitle() ?> 
    <?php echo $this->headMeta() ?> 
    <?php echo $this->headLink() ?> 
    <?php echo $this->headStyle() ?> 
<?php 
    
    $this->dojo()->setLocalPath('/zf/js/dojo/dojo.js')
                 ->addStyleSheetModule('dijit.themes.tundra');
    echo $this->dojo()->enable();
    echo $this->headScript();
?>
    
</head>
<body class="tundra">
    <?php echo $this->form ?>
    <?php echo $this->inlineScript() ?>
</body>
</html>

//following files in root directory
file index.php:

<?php
require_once 'autoload.php';
$view = new Zend_View();
Zend_Dojo::enableView($view);

$form = new Zend_Dojo_Form('myform');
$form->setView($view);

$autoComplete1 = new Zend_Dojo_Form_Element_FilteringSelect('sel_1');
//$autoComplete1 = new Zend_Form_Element_Select('sel_1');
$autoComplete1->setMultiOptions(
    array('Cats', 'Dogs')
);
$autoComplete1->setAttrib('onchange', "dijit.byId('sel_2').searchAttr =
dijit.byId('sel_1').getValue();return true");
$autoComplete1->setLabel('Select 1');
$form->addElement($autoComplete1);
$searchAttribute = @$_GET['sel_1'];
if( ! in_array($searchAttribute, array('0', '1'))){
    $searchAttribute = '0';
}
$form->addElement(    
    'FilteringSelect',
    'sel_2',
     array(
             'label' => 'Select 2',
             'storeId' => 'myData',
             'storeType'=> 'dojo.data.ItemFileReadStore',
             'storeParams' => array( 'url' => '/zf/dojo.php',),
             'dijitParams' => array( 'searchAttr' => $searchAttribute,
),
     )
);
$form->addElement('submit','go');
$form->populate($_GET);
$view->form = $form->render();
$view->addBasePath('E:\werk\zf fixes\testsite');
echo $view->render('index.phtml');

?>

file dojo.php:
<?php
    require_once 'autoload.php';
    
    $data = new Zend_Dojo_Data();
    $data->setIdentifier('name');
    
    $cats = array('Lion', 'Cheeta', 'Cat');
    
    foreach ($cats as $key => $cat) {
        $data->addItem(array('name' => $key, '0' => $cat));
    }

    $dogs = array(3 => 'Bello', 4 => 'Blix', 5 => 'Freddy', 6 => 'Hungry
Bill');
    foreach ($dogs as $key => $dog) {
        $data->addItem(array('name' => $key,"1" => $dog));
    }
    
    echo $data;    

file autoload.php: (depecated)
<?php

require_once 'Zend/Loader.php';
/**
 * Loads all Zend Framework classes automagically
 *
 * @param string $className
 */
function __autoload($className){
    Zend_Loader::loadClass($className);
}

?>

Hope this helps,

Bart

411161 schreef: 

 
 
Ace Paul wrote:
  

        I have a form, which I would like to use dependent drop downs
in. I can't
        seem to find anything about it hear, after looking all morning
trying to
        work it out.
        I have one field "race_country"
        when an option is selected I would like to show the cities in
that
        country.
        The following is what I have currently in the form, which will
show all
        countries and all cities.
        Any help would be great. thanks
         
        $table = new Country();
        foreach ($table->fetchAll() as $c) {
            $country->addMultiOption($c->country_id, $c->country_name);
        }
         $this->addElement( $country);
          
         $city = new Zend_Form_Element_Select('race_city');
        $city->setLabel('City')
                 ->setRequired(true);
         
        $table = new City();
        foreach ($table->fetchAll() as $c) {
            $city->addMultiOption($c->city_id, $c->city_name);
        }
         $this->addElement( $city);
         
            

 
Does anyone have a complete example of this?
 
I used this example to get it up and going:
http://techchorus.net/autocomplete-example-zenddojoformelementfilterings
elect-and-zenddojodata
 
With the change located in the comments:
<div dojoType="dojo.data.ItemFileReadStore" url="/strain/list"
jsId="strainStore"></div>
 
but I am having trouble trying to do dependent drop downs. Any good
references out there, or is this too early to attempt with Zend &  Dojo?
 
  

Reply via email to