On Mar 18, 6:19 pm, Gareth McCumskey <[email protected]> wrote:
> Did you actually look in the database to see if it saved the object or not?

Yes, I checked, it doesn't save the information to the database.

> Also to get that array what you need to do is after the save():
>
> $this->results = array("author"=>$talback_obj->getAuthor(),
> "body"=>$talback_obj->getBody());
>
> But you do not even need to do this. Just do:
>
> $this->results = $talkback_obj;
>
> Then in your view you can access the object directly:
>
> <?php echo $talkback_obj->getAuthor(); ?>
> <?php echo $talkback_obj->getBody(); ?>
>

Ok, I changed the code so that the results member stores the object
itself.

> To debug that problem you are having with Ajax updating the correct div post
> the entire form_remote_tag function snippet for me to see...
>

There it is:

                <?php use_helper('Javascript'); ?>
                <?php use_helper('Form'); ?>

                ...

                <input type="hidden" name="blog_id" id="blog_id" value="<?php 
echo
$blog->getId(); ?>" />
                <label for="Author">Author:</label>
                <?php echo input_tag('author') ?>
                <br/>
                <label for="Talkback">Talkback:</label>
                <?php echo input_tag('talkback') ?>
                <?php echo submit_tag('Post') ?>
                </form>

Thanks.


> Gareth
>
> On Wed, Mar 18, 2009 at 4:07 PM, Liran Tal <[email protected]> wrote:
>
> > Hey Gareth,
>
> > On Mar 18, 11:34 am, Gareth McCumskey <[email protected]> wrote:
> > > $request and $this->getRequest() and even
> > > sfContext::getInstance()->getRequest() are all the same thing within the
> > > action. Outside the action you won't be able to use $request, thats why
> > all
> > > the other access methods exist. $request in an action is just a
> > convenience.
>
> > Thanks for that reference, good to be on the right track.
> > Regarding the $talkback_obj->save() method for saving the data, it
> > doesn't seem
> > to save the data. It doesn't give any error too, just shows me the
> > ajax success page.
>
> > More than that, I've also added this after the ->save() method:
> >                  $results = array('author' => $author, 'body' => $body);
> >                  $this->results = $results;
> > And in the addNewTalkbackAjaxSuccess.php page I did this:
> > <?php
> >        var_dump($results);
> > ?>
> > (Because I know that it's possible to pass like that variables from
> > the actions to the view
> > so I wanted to check the values)
> > but it gives me an error for undefined variable $results.
>
> > This still doesn't explain why the talkback object save() method isn't
> > saving the information
> > (and it doesn't give any error if I don't use the $results variable on
> > the view page so I'm clueless).
>
> > I mentioned I'm using 1.2?
>
> > Thanks.
>
> > > Gareth
>
> > > On Tue, Mar 17, 2009 at 7:51 PM, Liran Tal <[email protected]> wrote:
>
> > > > On Mar 17, 4:22 pm, Gareth McCumskey <[email protected]> wrote:
> > > > > $talkback_obj = new Talkback();
>
> > > > > $talkback_obj->setAuthor($author);
> > > > > $talkback_obj->setBody($talkback);
> > > > > $talkback_obj->save();Thanks,
>
> > > > Thanks,
> > > > If you don't mind me asking also regarding the foThanks,llowing line
> > > > of code
> > > >          $isAjax = $this->getRequest()->isXmlHttpRequest();
> > > > It seems to me that it's possible to use $request->isXmlHttpRequest()
> > > > instead of $this?
> > > > it makes sense that $this->getRequest() actually referes to the
> > > > $request object in the function.
>
> > > > > On Tue, Mar 17, 2009 at 4:10 PM, Liran Tal <[email protected]>
> > wrote:
>
> > > > > > Hey,
>
> > > > > > In my template for showSuccess.php I've added the ability to submit
> > a
> > > > > > form via Ajax
> > > > > > as follows:
> > > > > >                <div id="talkback_list"></div>
> > > > > >                <?php echo form_remote_tag(array(
> > > > > >                                'update'   => 'talkback_list',
> > > > > >                                'url'      =>
> > > > 'talkback/addNewTalkbackAjax',
> > > > > >                                ))
> > > > > >                ?>
> > > > > >                <label for="Author">Author:</label>
> > > > > >                <?php echo input_tag('author') ?>
> > > > > >                <label for="Talkback">Talkback:</label>
> > > > > >                <?php echo input_tag('talkback') ?>
> > > > > >                <?php echo submit_tag('Post') ?>
> > > > > >                </form>
>
> > > > > > And in the talkback module's actions I've added an execution
> > handler
> > > > > > for it, such as:
>
> > > > > >  public function executeAddNewTalkbackAjax($request)
> > > > > >  {
> > > > > >          $isAjax = $this->getRequest()->isXmlHttpRequest();
> > > > > >          if ($isAjax) {
> > > > > >                  $author = $request->getParameter('author');
> > > > > >                  $talkback = $request->getParameter('talkback');
>
> > > > > >                 .... save(); ...
>
> > > > > >          }
> > > > > >  }
>
> > > > > > My question is how to save this data (author and talkback) in the
> > > > > > table from this execution
> > > > > > handler?
>
> > > > > > Reference: related schema:
> > > > > >  talkback:
> > > > > >    _attributes:  { phpName: Talkback }
> > > > > >    id:           ~
> > > > > >    blog_id:   ~
> > > > > >    author:       varchar(250)
> > > > > >    body:         longvarchar
> > > > > >    created_at:   ~
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to