AJAX, PHP, Mysql simple query example anyone?

Discussion in 'Javascript' started by Ivan Marsh, Jun 21, 2006.

  1. Ivan Marsh

    Ivan Marsh Guest

    Hey Folks,

    I'm having a heck of a time wrapping mind around AJAX.

    Anyone know of a simple, straight-forward example for pulling a simple
    query from mysql with PHP using AJAX?

    As I understand it I need a PHP script that pulls the query and dumps the
    data into XML format, that is called by triggering a javascript event that
    reads that file with XMLhttprequest.

    Is there a cross-browser way of doing this or do I have to detect whether
    I'm using IE or Mozilla?

    A good example that doesn't look like rocket science would be nice.

    -thx

    --
    The USA Patriot Act is the most unpatriotic act in American history.
    Feingold-Obama '08 - Because the Constitution isn't history,
    It's the law.
    Ivan Marsh, Jun 21, 2006
    #1
    1. Advertising

  2. Mitja Trampus, Jun 22, 2006
    #2
    1. Advertising

  3. Ivan Marsh

    AlexVN Guest

    Ivan Marsh wrote:
    > As I understand it I need a PHP script that pulls the query and dumps the
    > data into XML format, that is called by triggering a javascript event that
    > reads that file with XMLhttprequest.


    Ivan,

    The particular AJAX program actually consists of two parts: server and
    client.
    Server part is a PHP script that returns the array of data in XML,
    JSON, or plain text (or any other you like) format. Client part sends
    the request for the data using <IFRAME>, <script> tags or
    xmlhttprequest object. Consider using dojotoolkit.org for client part
    and just a plain text data format for server part.

    Sincerely,
    Alexander
    http://www.alexatnet.com/
    AlexVN, Jun 22, 2006
    #3
  4. On or about 6/21/2006 5:15 PM, it came to pass that Ivan Marsh wrote:
    > Hey Folks,
    >
    > I'm having a heck of a time wrapping mind around AJAX.
    >
    > Anyone know of a simple, straight-forward example for pulling a simple
    > query from mysql with PHP using AJAX?
    >
    > As I understand it I need a PHP script that pulls the query and dumps the
    > data into XML format, that is called by triggering a javascript event that
    > reads that file with XMLhttprequest.
    >
    > Is there a cross-browser way of doing this or do I have to detect whether
    > I'm using IE or Mozilla?
    >
    > A good example that doesn't look like rocket science would be nice.
    >
    > -thx
    >

    Take a look here. http://www.modernmethod.com/sajax/
    Debugging AJAX code can be a bit of an issue but SAJAX does have some
    capabilities that do help.

    It works for me in IE, Firefox and Opera. Actually IMHO and I will may
    get flamed for this by AJAX purists, I find the easiest method of using
    this technology is to build Javascript in my PHP code, then Javascript
    EVAL the result on the client. My example is pulled from a much larger
    script.

    Example: Update a select field. Let's assume I have a select box that I
    want to contain selected venues/clubs etc from a large MySql table. The
    SAJAX database search is triggered when 3 or more characters are keyed
    into the search field, updating the Select field. Note: due to problems
    with IE it is necessary to replace the complete Select HTML definition
    or it wont work.

    On the client side I have the following fields as part of a form

    <INPUT TYPE="TEXT" id="Venue_Search" size="25" value="partial/full
    venue" autocomplete="off" onkeyup="Venuesearch(this.value)"
    onfocus="Venuesearch(this.value)" onblur="VenueReset(this.value)">

    <SPAN><select style='width:282px' id='Venue_Id' Name='Venue_Id'><OPTION
    VALUE=''></select></SPAN>

    On the client side I have the following Javascript(SAJAX support scripts
    not shown)

    function show_result(result)
    {
    eval(result)
    }

    function Venuesearch ($Likedata)
    {
    //executes VenueLook on the server
    $Likedata=$Likedata.replace(/\s*$/, ""); //dump trailing spaces
    $Likedata=$Likedata.replace(/^\s*/, ""); //dump leading spaces
    if ($Likedata == "partial/full venue")
    document.getElementById('Venue_Search').value = ""
    else
    if ($Likedata.length > 2)
    {
    sajax_request_type = 'POST'
    x_VenueLook(
    $Likedata,
    show_result);
    }
    }

    function VenueReset ($Likedata)
    {
    $Likedata=$Likedata.replace(/\s*$/, ""); //dump trailing spaces
    $Likedata=$Likedata.replace(/^\s*/, ""); //dump leading spaces
    if ($Likedata == "")
    document.getElementById('Venue_Search').value = "partial/full venue"
    }


    On the Server side I have the following PHP code

    function VenueLook()
    {
    // Updates the Span around the select due to IE bug, including IE7
    // Put locations starting with search argument first in select list
    $Like = $_POST['rsargs'][0];
    $query = "SELECT Id, Name, City, State, IF (`Name` LIKE '". $Like . "%',
    '1', '2') AS Order_alias FROM `Venue` WHERE `Name` LIKE '%" . $Like .
    "%' ORDER BY Order_alias, Name ASC";
    $result = mysql_query( $query )
    or die('Result is no good: ' . mysql_error());
    $text= "<select style='width:282px' id='Venue_Id'
    Name='Venue_Id'><OPTION VALUE=''>". mysql_num_rows($result) ."
    Venues</option>";
    while($i = mysql_fetch_row($result))
    {
    if (mysql_num_rows($result) == 1)
    $text.= "<OPTION SELECTED VALUE='" . $i[0] . "'>" . $i[1] . " (".
    $i[2] . " " . $i[3] . ")</option>";
    else
    $text.= "<OPTION VALUE='" . $i[0] . "'>" . $i[1] . " (". $i[2] . " " .
    $i[3] . ")</option>";
    }
    $text.= "</select>";
    //return $text as Javascript which is executed by the
    //show_result script on the client side
    return "document.getElementById('Venue_Id').parentNode.innerHTML
    =\"".$text."\";
    ";
    }

    sajax_init();
    #$sajax_debug_mode = 1;
    sajax_export("VenueLook");
    sajax_handle_client_request();
    totalstranger, Jun 22, 2006
    #4
  5. Ivan Marsh

    Erwin Moller Guest

    Ivan Marsh wrote:

    > Hey Folks,
    >
    > I'm having a heck of a time wrapping mind around AJAX.
    >
    > Anyone know of a simple, straight-forward example for pulling a simple
    > query from mysql with PHP using AJAX?


    Hi Ivan,

    AJAX has nothing to do with the query to the database.
    Just try to call your script directly from your browser, with the right
    QUERYstring, and see the result in your browser.
    If that works allright, then use AJAX.

    eg, first try:
    http://www.example.com/getusername.php?userid=12


    >
    > As I understand it I need a PHP script that pulls the query and dumps the
    > data into XML format, that is called by triggering a javascript event that
    > reads that file with XMLhttprequest.
    >
    > Is there a cross-browser way of doing this or do I have to detect whether
    > I'm using IE or Mozilla?
    >
    > A good example that doesn't look like rocket science would be nice.


    A great startingpoint for AJAX:
    www.w3schools.com
    click on AJAX.
    It has a crossbrowser approach.
    Just study the example, build them yourself with a simple example, then do
    the real job. :)

    Good luck.

    Regard,
    Erwin Moller

    >
    > -thx
    >
    Erwin Moller, Jun 22, 2006
    #5
  6. Ivan Marsh

    wmasterj Guest

    wmasterj, Jun 22, 2006
    #6
  7. Ivan Marsh

    HC Guest

    Hi Ivan,

    Here's the code I've been working with. I do things a little bit
    differently from what you're asking. Instead of dumping the data in XML
    format, I have my PHP script print out Javascript that is evaluated by
    the browser. This works well for webapps.

    The code is fairly well commented, but feel free to post back if you
    have any questions, or comments of your own :)

    http://pastebin.com/726871

    -HC



    Ivan Marsh wrote:
    > Hey Folks,
    >
    > I'm having a heck of a time wrapping mind around AJAX.
    >
    > Anyone know of a simple, straight-forward example for pulling a simple
    > query from mysql with PHP using AJAX?
    >
    > As I understand it I need a PHP script that pulls the query and dumps the
    > data into XML format, that is called by triggering a javascript event that
    > reads that file with XMLhttprequest.
    >
    > Is there a cross-browser way of doing this or do I have to detect whether
    > I'm using IE or Mozilla?
    >
    > A good example that doesn't look like rocket science would be nice.
    >
    > -thx
    >
    HC, Jun 23, 2006
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rajive Narain
    Replies:
    0
    Views:
    1,703
    Rajive Narain
    Sep 18, 2009
  2. neha shena
    Replies:
    1
    Views:
    254
    Dennis Lee Bieber
    Oct 29, 2010
  3. bin liu
    Replies:
    1
    Views:
    128
    Curt Hibbs
    Dec 22, 2004
  4. Angus
    Replies:
    0
    Views:
    178
    Angus
    Sep 2, 2007
  5. master44
    Replies:
    2
    Views:
    383
    Thomas 'PointedEars' Lahn
    Sep 4, 2009
Loading...

Share This Page