Print

Print


AHAH!

On Mon, Dec 5, 2011 at 3:45 PM, Jonathan Rochkind <[log in to unmask]> wrote:
> I still like sending HTML back from my server. I guess I never got the
> message that that was out of style, heh.
>
> My server application already has logic for creating HTML from templates,
> and quite possibly already creates this exact same piece of HTML in some
> other place, possibly for use with non-AJAX fallbacks, or some other context
> where that snippet of HTML needs to be rendered. I prefer to re-use this
> logic that's already on the server, rather than have a duplicate HTML
> generating/templating system in the javascript too.  It's working fine for
> me, in my use patterns.
>
> Now, certainly, if you could eliminate any PHP generation of HTML at all, as
> I think Godmar is suggesting, and basically have a pure Javascript app --
> that would be another approach that avoids duplication of HTML generating
> logic in both JS and PHP. That sounds fine too. But I'm still writing apps
> that degrade if you have no JS (including for web spiders that have no JS,
> for instance), and have nice REST-ish URLs, etc.   If that's not a
> requirement and you can go all JS, then sure.  But I wouldn't say that
> making apps that use progressive enhancement with regard to JS and degrade
> fine if you don't have is "out of style", or if it is, it ought not to be!
>
> Jonathan
>
>
> On 12/5/2011 6:31 PM, Godmar Back wrote:
>>
>> FWIW, I would not send HTML back to the client in an AJAX request - that
>> style of AJAX fell out of favor years ago.
>>
>> Send back JSON instead and keep the view logic client-side. Consider using
>> a library such as knockout.js. Instead of your current (difficult to
>> maintain) mix of PhP and client-side JavaScript, you'll end up with a
>> static HTML page, a couple of clean JSON services (for checked-out per
>> subject, and one for the syndetics ids of the first 4 covers), and clean
>> HTML templates.
>>
>> You had earlier asked the question whether to do things client or server
>> side - well in this example, the correct answer is to do it client-side.
>> (Yours is a read-only application, where none of the advantages of
>> server-side processing applies.)
>>
>>  - Godmar
>>
>> On Mon, Dec 5, 2011 at 6:18 PM, Nate Hill<[log in to unmask]>  wrote:
>>
>>> Something quite like that, my friend!
>>> Cheers
>>> N
>>>
>>> On Mon, Dec 5, 2011 at 3:10 PM, Walker, David<[log in to unmask]>
>>> wrote:
>>>
>>>> I gotcha.  More information is, indeed, better. ;-)
>>>>
>>>> So, on the PHP side, you just need to grab the term from the  query
>>>> string, like this:
>>>>
>>>>  $searchterm = $_GET['query'];
>>>>
>>>> And then in your JavaScript code, you'll send an AJAX request, like:
>>>>
>>>>  http://www.natehill.net/vizstuff/catscrape.php?query=Cooking
>>>>
>>>> Is that what you're looking for?
>>>>
>>>> --Dave
>>>>
>>>> -----------------
>>>> David Walker
>>>> Library Web Services Manager
>>>> California State University
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
>>>> Nate Hill
>>>> Sent: Monday, December 05, 2011 3:00 PM
>>>> To: [log in to unmask]
>>>> Subject: Re: [CODE4LIB] jQuery Ajax request to update a PHP variable
>>>>
>>>> As always, I provided too little information.  Dave, it's much more
>>>> involved than that....
>>>>
>>>> I'm trying to make a kind of visual browser of popular materials from
>>>> one
>>>> of our branches from a .csv file.
>>>>
>>>> In order to display book covers for a series of searches by keyword, I
>>>> query the catalog, scrape out only the syndetics images, and then
>>>
>>> display 4
>>>>
>>>> of them.  The problem is that I've hardcoded in a search for 'Drawing',
>>>> rather than dynamically pulling the correct term and putting it into the
>>>> catalog query.
>>>>
>>>> Here's the work in process, and I believe it will only work in Chrome
>>>> right now.
>>>> http://www.natehill.net/vizstuff/donerightclasses.php
>>>>
>>>> I may have a solution, Jason's idea got me part way there.  I looked all
>>>> over the place for that little snippet he sent over!
>>>>
>>>> Thanks!
>>>>
>>>>
>>>>
>>>> On Mon, Dec 5, 2011 at 2:44 PM, Walker, David<[log in to unmask]>
>>>> wrote:
>>>>
>>>>>> And I want to update 'Drawing' to be 'Cooking'  w/ a jQuery hover
>>>>>> effect on the client side then I need to make an Ajax request,
>>>
>>> correct?
>>>>>
>>>>> What you probably want to do here, Nate, is simply output the PHP
>>>>> variable in your HTML response, like this:
>>>>>
>>>>>  <h1 id="foo"><?php echo $searchterm ?></h1>
>>>>>
>>>>> And then in your JavaScript code, you can manipulate the text through
>>>>> the DOM like this:
>>>>>
>>>>>  $('#foo').html('Cooking');
>>>>>
>>>>> --Dave
>>>>>
>>>>> -----------------
>>>>> David Walker
>>>>> Library Web Services Manager
>>>>> California State University
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Code for Libraries [mailto:[log in to unmask]] On Behalf
>>>>> Of Nate Hill
>>>>> Sent: Monday, December 05, 2011 2:09 PM
>>>>> To: [log in to unmask]
>>>>> Subject: [CODE4LIB] jQuery Ajax request to update a PHP variable
>>>>>
>>>>> If I have in my PHP script a variable...
>>>>>
>>>>> $searchterm = 'Drawing';
>>>>>
>>>>> And I want to update 'Drawing' to be 'Cooking'  w/ a jQuery hover
>>>>> effect on the client side then I need to make an Ajax request, correct?
>>>>> What I can't figure out is what that is supposed to look like...
>>>>> something like...
>>>>>
>>>>> $.ajax({
>>>>>  type: "POST",
>>>>>  url: "myfile.php",
>>>>>  data: "...not sure how to write what goes here to make it
>>>
>>> 'Cooking'..."
>>>>>
>>>>> });
>>>>>
>>>>> Any ideas?
>>>>>
>>>>>
>>>>> --
>>>>> Nate Hill
>>>>> [log in to unmask]
>>>>> http://www.natehill.net
>>>>>
>>>>
>>>>
>>>> --
>>>> Nate Hill
>>>> [log in to unmask]
>>>> http://www.natehill.net
>>>>
>>>
>>>
>>> --
>>> Nate Hill
>>> [log in to unmask]
>>> http://www.natehill.net
>>>
>



-- 
Cary Gordon
The Cherry Hill Company
http://chillco.com