Also, consider tools like SQLFORM.grid(), it's generate everything...

Richard

On Tue, Jan 27, 2015 at 2:13 PM, Richard Vézina <ml.richard.vez...@gmail.com
> wrote:

> Derek,
>
> I understand your point, but from the testing point of view, the only
> option remaining for testing view is Selenium HQ which is slow, so if you
> want to be able to test your controller that depend a lot of the view, what
> I can only see is to limit as much as possible the view to unpack web2py
> controller variables packed with everything...
>
> Do I am wrong in thinking that?
>
> Richard
>
> On Tue, Jan 27, 2015 at 12:19 PM, Derek <sp1d...@gmail.com> wrote:
>
>> What I mean by 'you are mixing your view with your controller' is that
>> you are using your controller to build HTML that will be used as-is. You
>> should never create HTML in your controllers, leave that to the views. The
>> whole point of MVC is that each part has a very specific purpose. Don't
>> create your models in your controllers or views, don't create html in your
>> models or controllers, and don't put logic in models and views.
>>
>> https://www.youtube.com/watch?v=8FWdQVNeTlI
>>
>>
>> On Tuesday, January 27, 2015 at 10:15:50 AM UTC-7, Derek wrote:
>>>
>>> Well, where do I start? It looks like you are a victim of copy and paste
>>> coding. Delete your two functions and start over again.
>>>
>>> That said, you are mixing your view with your controller, please don't
>>> do that. I would suggest you use this web2pyslice as a starting point.
>>> (yes, I wrote it)
>>>
>>> http://www.web2pyslices.com/slice/show/1724/cascading-
>>> dropdowns-simplified
>>>
>>>
>>>
>>>
>>> On Monday, January 26, 2015 at 1:28:20 PM UTC-7, Omi Chiba wrote:
>>>>
>>>> I have a three dropdown and the value will be dynamically changed using
>>>> ajax. It's working fine but something is wrong. In second dropdown
>>>> (id="lead_name"), I specify jQuery('#model_name') but it's
>>>> actually jQuery('#leadl_name') but then when the value for the second drop
>>>> changed, the value disappear from the second and third. When I keep the
>>>> current way (which is wrong name) it's working as expected.... Do you guys
>>>> know what's wrong?
>>>>
>>>> This is my view
>>>>
>>>> <form enctype="multipart/form-data" action="{{URL()}}" method="post">
>>>>                 <tr>
>>>>                 <td><select name='model_name' onchange="jQuery(
>>>> '#model_name').empty();
>>>>                     ajax('lead_ajax', ['model_name'], 'lead_name');">
>>>>                     {{for model in models:}}
>>>>                         <option value="{{=model.Name}}"
>>>>                         {{=" selected='selected'" if str(model.Name)=
>>>> =request.vars.model_name else ""}}>
>>>>                         {{=model.Name}}
>>>>                         </option>
>>>>                     {{pass}}
>>>>                 </select></td>
>>>>                 <td><select id='lead_name' name='lead_name' onchange="
>>>> jQuery('#model_name').empty();
>>>>                     ajax('block_ajax', ['lead_name'], 'block_name');">
>>>>                     {{for lead in leads:}}
>>>>                         <option value="{{=lead.Name}}"
>>>>                         {{=" selected='selected'" if str(lead.Name)=
>>>> =request.vars.lead_name else ""}}>
>>>>                         {{=lead.Name}}
>>>>                         </option>
>>>>                     {{pass}}
>>>>                 </select></td>
>>>>                  <td><select id='block_name' name='block_name'>
>>>>                     {{for block in blocks:}}
>>>>                         <option value="{{=block.Name}}"
>>>>                         {{=" selected='selected'" if str(block.Name)=
>>>> =request.vars.block_name else ""}}>
>>>>                         {{=block.Name}}
>>>>                         </option>
>>>>                     {{pass}}
>>>>                 </select></td>
>>>>                     <td></td>
>>>>                     <td></td>
>>>>                 <td><input type="submit" value='Submit'></td>
>>>>                 </tr>
>>>>             </form>
>>>>
>>>> My controller
>>>>
>>>> def index():
>>>>     response.title='KR Quick Delivery Service'
>>>>
>>>>     if request.vars.model_name:
>>>>         lists = db((db.KR_Product.Model==request.vars.model_name) & (db
>>>> .KR_Product.Lead==request.vars.lead_name) & (db.KR_Product.Block==
>>>> request.vars.block_name)).select(db.KR_Product.ALL)
>>>>     else:
>>>>         lists=''
>>>>     models = db().select(db.KR_Model.ALL)
>>>>     leads = db(db.KR_Lead.ModelName == '20').select(db.KR_Lead.ALL)
>>>>     blocks = db(db.KR_Block.LeadName == '01').select(db.KR_Block.ALL)
>>>>
>>>>     return dict(lists=lists,models=models,leads=leads,blocks=blocks)
>>>>
>>>> def lead_ajax():
>>>>     leads = db(db.KR_Lead.ModelName==request.vars.model_name).select(db
>>>> .KR_Lead.ALL)
>>>>     result = ''
>>>>     for lead in leads:
>>>>         result += "<option value='" + lead.Name + "'>" + lead.Name +
>>>> "</option>"
>>>>     return XML(result)
>>>>
>>>> def block_ajax():
>>>>     blocks = db(db.KR_Block.LeadName==request.vars.lead_name).select(db
>>>> .KR_Block.ALL)
>>>>     result = ''
>>>>     for block in blocks:
>>>>         result += "<option value='" + block.Name + "'>" + block.Name +
>>>> "</option>"
>>>>     return XML(result)
>>>>
>>>>
>>>>
>>>>  --
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to