Example Explained – The PHP page

Posted by admin | Posted in PHP Tutorial | Posted on 10-08-2010-05-2008

0

The PHP page called by the JavaScript code is called “getrss.php”:

  • <?php
    //get the q parameter from URL
    $q=$_GET["q"];

    //find out which feed was selected
    if($q==”Google”)
    {
    $xml=(“http://news.google.com/news?ned=us&topic=h&output=rss”);
    }
    elseif($q==”MSNBC”)
    {
    $xml=(“http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml”);
    }

    $xmlDoc = new DOMDocument();
    $xmlDoc->load($xml);

    //get elements from “<channel>”
    $channel=$xmlDoc->getElementsByTagName(‘channel’)->item(0);
    $channel_title = $channel->getElementsByTagName(‘title’)
    ->item(0)->childNodes->item(0)->nodeValue;
    $channel_link = $channel->getElementsByTagName(‘link’)
    ->item(0)->childNodes->item(0)->nodeValue;
    $channel_desc = $channel->getElementsByTagName(‘description’)
    ->item(0)->childNodes->item(0)->nodeValue;

    //output elements from “<channel>”
    echo(“<p><a href=’” . $channel_link
    . “‘>” . $channel_title . “</a>”);
    echo(“<br />”);
    echo($channel_desc . “</p>”);

    //get and output “<item>” elements
    $x=$xmlDoc->getElementsByTagName(‘item’);
    for ($i=0; $i<=2; $i++)
    {
    $item_title=$x->item($i)->getElementsByTagName(‘title’)
    ->item(0)->childNodes->item(0)->nodeValue;
    $item_link=$x->item($i)->getElementsByTagName(‘link’)
    ->item(0)->childNodes->item(0)->nodeValue;
    $item_desc=$x->item($i)->getElementsByTagName(‘description’)
    ->item(0)->childNodes->item(0)->nodeValue;

    echo (“<p><a href=’” . $item_link
    . “‘>” . $item_title . “</a>”);
    echo (“<br />”);
    echo ($item_desc . “</p>”);
    }
    ?>

When an option is sent from the JavaScript, the following happens:

  1. PHP finds out which RSS feed was selected
  2. An XML DOM object is created for the selected RSS feed
  3. The elements from the RSS channel are found and outputted
  4. Loops through the first three elements and output result

Example Explained – The PHP page

Posted by admin | Posted in PHP Tutorial | Posted on 10-08-2010-05-2008

0

The PHP page called by the JavaScript code is called “livesearch.php”.

The code searches an XML file for titles matching the search string and returns the result as HTML:

  • <?php
    $xmlDoc = new DOMDocument();
    $xmlDoc->load(“links.xml”);

    $x=$xmlDoc->getElementsByTagName(‘link’);

    //get the q parameter from URL
    $q=$_GET["q"];

    //lookup all links from the xml file if length of q>0
    if (strlen($q) > 0)
    {
    $hint=”";
    for($i=0; $i<($x->length); $i++)
    {
    $y=$x->item($i)->getElementsByTagName(‘title’);
    $z=$x->item($i)->getElementsByTagName(‘url’);
    if ($y->item(0)->nodeType==1)
    {
    //find a link matching the search text
    if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
    {
    if ($hint==”")
    {
    $hint=”<a href=’” .
    $z->item(0)->childNodes->item(0)->nodeValue .
    “‘ target=’_blank’>” .
    $y->item(0)->childNodes->item(0)->nodeValue . “</a>”;
    }
    else
    {
    $hint=$hint . “<br /><a href=’” .
    $z->item(0)->childNodes->item(0)->nodeValue .
    “‘ target=’_blank’>” .
    $y->item(0)->childNodes->item(0)->nodeValue . “</a>”;
    }
    }
    }
    }
    }

    // Set output to “no suggestion” if no hint were found
    // or to the correct values
    if ($hint == “”)
    {
    $response=”no suggestion”;
    }
    else
    {
    $response=$hint;
    }

    //output the response
    echo $response;
    ?>

If there is any text sent from the JavaScript (strlen($q) > 0), the following happens:

  1. PHP creates an XML DOM object of the “links.xml” file
  2. Loops through allĀ  <title> elements to find titles that match the text sent from the JavaScript
  3. Sets the correct link and title in the “$response” variable. If more than one match is found, all matches are added to the variable
  4. If no matches are found, the $response variable is set to “no suggestion”
  5. Output the $respone variable to the “livesearch” placeholder

Example explained – The PHP Page

Posted by admin | Posted in PHP Tutorial | Posted on 10-08-2010-05-2008

0

The PHP page called by the JavaScript, is called “responsexml.php”.

The PHP script runs an SQL query against a MySQL database, and returns the result an XML document:

  • <?php
    $q=$_GET["q"];

    $con = mysql_connect(‘localhost’, ‘peter’, ‘abc123′);
    if (!$con)
    {
    die(‘Could not connect: ‘ . mysql_error());
    }

    mysql_select_db(“ajax_demo”, $con);

    $sql=”SELECT * FROM user WHERE id = “.$q.”";

    $result = mysql_query($sql);

    echo ‘<?xml version=”1.0″ encoding=”ISO-8859-1″?>
    <person>’;
    while($row = mysql_fetch_array($result))
    {
    echo “<firstname>” . $row['FirstName'] . “</firstname>”;
    echo “<lastname>” . $row['LastName'] . “</lastname>”;
    echo “<age>” . $row['Age'] . “</age>”;
    echo “<hometown>” . $row['Hometown'] . “</hometown>”;
    echo “<job>” . $row['Job'] . “</job>”;
    }
    echo “</person>”;

    mysql_close($con);
    ?>

When the query is sent from the JavaScript to the PHP page, the following happens:

  1. Set the $q variable to the data sent in the q parameter
  2. Open a connection to a MySQL server
  3. The “user” with the specified id is found
  4. The data is outputted as an XML document

Example explained – The PHP Page

Posted by admin | Posted in PHP Tutorial | Posted on 10-08-2010-05-2008

0

The PHP page called by the JavaScript, is called “getuser.php”.

The PHP script runs an SQL query against a MySQL database, and returns the result as HTML:

  • <?php
    $q=$_GET["q"];

    $con = mysql_connect(‘localhost’, ‘peter’, ‘abc123′);
    if (!$con)
    {
    die(‘Could not connect: ‘ . mysql_error());
    }

    mysql_select_db(“ajax_demo”, $con);
    $sql=”SELECT * FROM user WHERE id = ‘”.$q.”‘”;

    $result = mysql_query($sql);

    echo “<table border=’1′>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
    <th>Hometown</th>
    <th>Job</th>
    </tr>”;

    while($row = mysql_fetch_array($result))
    {
    echo “<tr>”;
    echo “<td>” . $row['FirstName'] . “</td>”;
    echo “<td>” . $row['LastName'] . “</td>”;
    echo “<td>” . $row['Age'] . “</td>”;
    echo “<td>” . $row['Hometown'] . “</td>”;
    echo “<td>” . $row['Job'] . “</td>”;
    echo “</tr>”;
    }
    echo “</table>”;

    mysql_close($con);
    ?>

When the query is sent from the JavaScript to the PHP page, the following happens:

  1. PHP opens a connection to a MySQL server
  2. The correct person is found
  3. An HTML table is created, and filled with data, and sent back to the “txtHint” placeholder

Example explained – The PHP Page

Posted by admin | Posted in PHP Tutorial | Posted on 10-08-2010-05-2008

0

The server paged called by the JavaScript, is a PHP file called “getcd.php”.

The PHP script loads an XML document, “cd_catalog.xml“, runs a query against the XML file, and returns the result as HTML:

  • <?php
    $q=$_GET["q"];

    $xmlDoc = new DOMDocument();
    $xmlDoc->load(“cd_catalog.xml”);

    $x=$xmlDoc->getElementsByTagName(‘ARTIST’);

    for ($i=0; $i<=$x->length-1; $i++)
    {
    //Process only element nodes
    if ($x->item($i)->nodeType==1)
    {
    if ($x->item($i)->childNodes->item(0)->nodeValue == $q)
    {
    $y=($x->item($i)->parentNode);
    }
    }
    }

    $cd=($y->childNodes);

    for ($i=0;$i<$cd->length;$i++)
    {
    //Process only element nodes
    if ($cd->item($i)->nodeType==1)
    {
    echo($cd->item($i)->nodeName);
    echo(“: “);
    echo($cd->item($i)->childNodes->item(0)->nodeValue);
    echo(“<br />”);
    }
    }
    ?>

When the CD query is sent from the JavaScript to the PHP page, the following happens:

  1. PHP creates an XML DOM object
  2. Find all <artist> elements that matches the name sent from the JavaScript
  3. Output the album information (send to the “txtHint” placeholder)

Example explained – The PHP page

Posted by admin | Posted in PHP Tutorial | Posted on 10-08-2010-05-2008

0

The code in the “gethint.php” checks an array of names and returns the corresponding names to the client:

  • <?php
    // Fill up array with names
    $a[]=”Anna”;

    $a[]=”Brittany”;
    $a[]=”Cinderella”;
    $a[]=”Diana”;
    $a[]=”Eva”;
    $a[]=”Fiona”;
    $a[]=”Gunda”;
    $a[]=”Hege”;
    $a[]=”Inga”;
    $a[]=”Johanna”;
    $a[]=”Kitty”;
    $a[]=”Linda”;
    $a[]=”Nina”;
    $a[]=”Ophelia”;
    $a[]=”Petunia”;
    $a[]=”Amanda”;
    $a[]=”Raquel”;
    $a[]=”Cindy”;
    $a[]=”Doris”;
    $a[]=”Eve”;
    $a[]=”Evita”;
    $a[]=”Sunniva”;
    $a[]=”Tove”;
    $a[]=”Unni”;
    $a[]=”Violet”;
    $a[]=”Liza”;
    $a[]=”Elizabeth”;
    $a[]=”Ellen”;
    $a[]=”Wenche”;
    $a[]=”Vicky”;

    //get the q parameter from URL
    $q=$_GET["q"];

    //lookup all hints from array if length of q>0
    if (strlen($q) > 0)
    {
    $hint=”";
    for($i=0; $i<count($a); $i++)
    {
    if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
    {
    if ($hint==”")
    {
    $hint=$a[$i];
    }
    else
    {
    $hint=$hint.” , “.$a[$i];
    }
    }
    }
    }

    // Set output to “no suggestion” if no hint were found
    // or to the correct values
    if ($hint == “”)
    {
    $response=”no suggestion”;
    }
    else
    {
    $response=$hint;
    }

    //output the response
    echo $response;
    ?>

If there is any text sent from the JavaScript (strlen($q) > 0), the following happens:

  1. Find a name matching the characters sent from the JavaScript
  2. If no match were found, set the response string to “no suggestion”
  3. If one or more matching names were found, set the response string to all these names
  4. The response is sent to the “txtHint” placeholder