ajax - Windows-gadgets, der kontakter webservices

Indlæg af Hanne Mølgaard Plasc

Problem



Er det muligt at oprette en Windows Gadget, der kontakter en webservice.


I dette tilfælde kaldes webservicemetoden, som igen giver resultaterne af en foruddefineret SQL Server-forespørgsel.


Hvis ja, hvad er en ideel tilgang til at gøre dette.


Har nogen nogen erfaring med at gøre sådan noget?

Bedste reference


For at besvare dit spørgsmål er dette virkelig meget muligt og ganske enkelt også.


På klienten/gadgetsiden skal du bruge javascript til at foretage en ajax-anmodning til din server. Når denne anmodning er gjort, vil din server simpelthen få adgang til din SQL-database og udskrive den, hvilket skaber svaret på det ajax-opkald. Her er et eksempel ved hjælp af php som server side sprog. Vær venlig at kommentere, hvis du har brug for hjælp.


Klientside (javascript):


function GetContent(){
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        var response = xmlhttp.responseText;
                document.getElementsById("RESULTS DIV").innerHTML = response
                //or something else to be done with response
        }
      }
    var time1 = new Date().getTime()

    xmlhttp.open("GET","PHP SERVER ADDRESS?time="+time1,true);

        // the time parameter is important to prevent caching the response - 
        //   your server code does not need to handle it.
    xmlhttp.send();
    }


Og Server-koden i php


   <?php
    $con = mysql\_connect("MYSQL SERVER ADDRESS","USERNAME","PASSWORD");
if (!$con)
  {
  die('Could not connect: ' . mysql\_error());
  }

mysql\_select\_db("my\_db", $con);

$result = mysql\_query("SELECT * FROM TABLE\_NAME");

while($row = mysql\_fetch\_array($result))
  {
  echo $row['COLUMN NAME'];
  echo "<br />";
  }

mysql\_close($con);
?>