Jump to:

17452 Posts in 4473 Topics by 1971 members

Archive

SilverStripe Forums » Archive » AJAX and maybe stupid php question...

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

Page: 1
Go to End
Author Topic: 8979 Views
  • zyko
    Avatar
    Community Member
    66 Posts

    AJAX and maybe stupid php question... Link to this post

    Hi

    sorry for that maybe stupid question.
    i 've read
    http://doc.silverstripe.com/doku.php?id=recipes:ajax_basics
    but don't understand this thing totally.
    and i didn't do any ajax things before, so i'm a rookie in this area.

    (1) what ist this
    Director::is_ajax()
    call for?

    (2) i have some client-script code not originating from silverstripe that want's to be connected to same ajaxified controller functions.
    is there any additionally need to do on a controller-function to act as some client-script expects it to be a ajax-pendant?
    (must there be some protocol-header set or anything else)
    do i have to include this
    Requirements::javascript('mysite/javascript/jquery.js');
    if i don't do things for silverstripe ajaxified controls?

    let's say, that if i don't need any template rendering things.
    so i thought the simplest solution was to return the strings i need.

    fe:

    class mycontroller xxx
    function getSomethingsContent() {
    $ds = DataObject::get(yyy...);
    return "<div id = 'blabla'>$ds->Content<div>";
    }


    is this a good solution or not?

    if i call this thing in the webbrowser via url it seems to be ok.
    if i call it out of a javascript to replace someones innterhtml i have problems
    if this thing hase special HTML characters.
    they come as XML where they should be HTML... which leeds to javascript-errors
    what i don't understand is, what system-part does this xml-translation thing, if i don't use that template rendering mechanism?
    Do i have to call another function to encode to another format?

    (3) now for the stupid php question:
    i've seen this thing sometimes in code, but can't the hell figure out what it does.
    (try to search for <<< in google. aaarghhh...)

    $ret = <<<HTML
    <div id="Form_ResultForm">
    {$form->renderWith("Form")}
    </div>
    HTML;

    i think it does something like format it ready for HTML.
    but i'm not sure, might also only be some php-syntax construct to allow many lines
    of text to be entered in a friendly way.

  • Re: AJAX and maybe stupid php question... Link to this post

    Hi Zyko,

    in response to your questions: Director::is_ajax() is used to tell if the SilverStripe instance running has been called by an ajax request, rather than just a normal HTTP request. With the <<< thing, it means that you can specify a custom endpoint for your string, that is instead of:

    $string = "bla";

    you can use:

    $string = <<<bla
    this is all
    the string contents
    bla;

    Basically it tells PHP to keep reading the string in until it finds an instance of bla at the beginning of a line (or whatever delimeter you specify after <<<).

    As for the special characters, im not 100% sure, but maybe you could try replacing the return with an echo (not a good coding practice - but just as a test) to see if that works.

  • zyko
    Avatar
    Community Member
    66 Posts

    Re: AJAX and maybe stupid php question... Link to this post

    Hi Grayzag

    THX for (3) )) makes things clearer for me
    (1) would be interesting to me, how this was implemented.
    Are there other protocols used, where they take out this info?
    but might look myself in code to find out ;-)

    (2). I'd some problems understanding the sample in
    http://doc.silverstripe.com/doku.php?id=recipes:ajax_basics
    the most confusing part for me was that the index-function uses

    return $this->renderWith("ajaxSnippet");


    where i expected to see this thing happen in an usual function.
    it seems to show some image that has been uploaded,
    where me is missing any image-upload code???
    for the xml-thing. i think i'll try rendering via snippet, as shown in the sample.
    is maybe a better solution then have things in code...
    [UPDATE]
    addon to my 'javascript' error.
    my client-script sets xxx.innerHTML = s;
    where it gets s from my controller-ajaxified-function.
    this produces an javascript error (in Firefox)

    An invalid or illegal string was specified


    the funny thing is that actually me using

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


    .innerHTML should not be valid to use
    if you look at
    http://www.webdeveloper.com/forum/showthread.php?s=b1e88d910c127646d403a781adc14742&t=178347&page=2
    they say someone shall use: createElementNS()
    But it seems to work, if there are no special characters inside. only with bad chars fe.

    &szlig;

    i get this script-error in firefox(maybe in ie too?)

    AAARGHHH...
    wondering how silverstripe is doing this (have to look at JQuery)...

    g
    Helmut

    8979 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.