[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TYPO3-dev] Problem with changing query according to post-parameter



Hello David,

thank you for your answer. The thing you mentioned with changing the php style 
is absolutely correct. Much better to read. But when I changed to your example, 
I get an Illegal offset type in spl object.

Ok, the main problem is the following:

1. I run the first time my controller action:
The list with results appears.

2. I type something in my form and send it. 
the params are stored in the $POST and they are accessible.ok.
BUT
now there is no further list with results.

When I set an exchangeArray in my controller_action this way:
$view->exchangeArray($this->parameters);
I get this Fatal error: Call to a member function printAsText() on
> a non-object ... /template.php in line 9.

Without, simply there is no result list (no content object in the html)!

Do you have any other suggestions?

Regards,
Walter.
-------- Original-Nachricht --------
> Datum: Fri, 31 Jul 2009 18:35:53 +0200
> Von: David Bruchmann <[email protected]>
> An: List for Core-/Extension development <[email protected]>
> Betreff: Re: [TYPO3-dev] Problem with changing query according        to      
> post-parameter

> ----- Ursprüngliche Nachricht -----
> Von:        David Bruchmann <[email protected]>
> Gesendet:   Freitag, 31. Juli 2009 18:28:19
> An:         List for Core-/Extension development 
> <[email protected]>
> CC:
> Betreff:    Re: [TYPO3-dev] Problem with changing query according to 
> post-parameter
> > ----- Ursprüngliche Nachricht -----
> > Von:        Walter Seeberger <[email protected]>
> > Gesendet:   Freitag, 31. Juli 2009 14:14:51
> > An:         [email protected]
> > CC:
> > Betreff:    [TYPO3-dev] Problem with changing query according to 
> > post-parameter
> >> Hello there,
> >>
> >> I try to react upon some post-parameters by changing data according to
> that in the model.ok:
> >>
> >> first I am doing some query and print the result trough my
> template.works!:
> >>
> >> <?php if($this->isNotEmpty()) { ?>
> >>                                    <ul>
> >>                                    <?php } ?>
> >>                                    <?php for($this->rewind(); 
> >> $this->valid(); $this->next()) {
> >>                                            $entry = $this->current();
> >>                                            ?>
> >>                                            <li><?php 
> >> $entry->printAsText('name'); ?></li>
> >>                                            <?php } ?>
> >>                                            <?php if($this->isNotEmpty()) { 
> >> ?>
> >>                                    </ul>
> >>    <?php } ?>
> >>
> >>
> >> Now I am using my form to put in some param. My template calls this
> function in the controller:
> >>
> >> public function formCallAction(){
> >>    $modelClassName =
> tx_div::makeInstanceClassName('tx_testext_model_data');
> >>            $model = new $modelClassName($this);
> >>         $model->load($this->parameters);   
> >>    
> >>         $view = tx_div::makeInstance('tx_testext_view_resultlist');
> >>    $view->exchangeArray($this->parameters);
> >>    $view->controller($this);
> >>    $view->render($this->configurations->get('resultlist'));
> >>    
> >>         $className =
> tx_div::makeInstanceClassName('tx_lib_translator');
> >>    $translator = new $className($this, $view);
> >>    return $translator->translateContent();
> >>     }
> >>
> >> The result is: Fatal error: Call to a member function printAsText() on
> a non-object ... /template.php in line 9.
> >>
> >> Is anyone able to help me with this problem?
> >> Need some ;-)
> > 
> > 
> > Hi Walter first of all I propose to write the php like this:
> > 
> > <?php
> > 
> > if($this->isNotEmpty()) {
> >     $content='<ul>';
> >     for($this->rewind();
> >             $this->valid();
> >             $this->next()) {
> >                     $content.='<li>';
> >                     $this->printAsText( $this->current() );  ##
> >                     $content.='</li>';
> >             }
> >     }
> >     $content .='</ul>';
> >     echo $content;
> > }
> > 
> > ?>
> > 
> > It's a lot clearer to read and I think avoids some faults.
> > 
> > Concerning your problem have a look at line with the ## at the end.
> > I'm not sure, but $this->current() logically has no function
> printAsText().
> > 
> 
> Sorry, made a fault by myself:
> 
> if($this->isNotEmpty()) {
>       $content='<ul>';
>       for($this->rewind(); $this->valid(); $this->next()) {
>               $content.= '<li>';
>               $content.= $this->printAsText( $this->current() );  ##
>               $content.= '</li>';
>       }
>       $content .='</ul>';
>       echo $content;
> }
> 
> ?>
> 
> Best regards
> David
> 
> _______________________________________________
> TYPO3-dev mailing list
> [email protected]
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-dev

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
_______________________________________________
TYPO3-dev mailing list
[email protected]
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-dev