0

MySQL クエリの結果から XML データを作成する、Google 開発者の例で示したものと非常によく似た単純な php スクリプトがあります。次に、この XML を使用して、特定の旅程のウェイポイントを表示するマップを操作します。

現在私が抱えている問題は、ウェイポイントを表示するページが機能している間、上記の旅程 ID を使用して以下のスクリプトを動的に更新する方法がわからないことです。私は通常 $_GET を使用して、特に機密性の低い ID を含む変数を渡しますが、このスクリプトはマッピング出力を表示するページとは別のファイルであるため、スクリプト内の変数を動的に更新する方法がわかりません。

「!!!!」とマークしたクエリ内の itineraryID を更新するために、このスクリプトに値を渡す方法を誰かが説明できる場合 それは大歓迎です。

    <?php

    require("phpsqlajax_dbinfo.php");

    function parseToXML($htmlStr) 
    { 
    $xmlStr=str_replace('<','&lt;',$htmlStr); 
    $xmlStr=str_replace('>','&gt;',$xmlStr); 
    $xmlStr=str_replace('"','&quot;',$xmlStr); 
    $xmlStr=str_replace("'",'&apos;',$xmlStr); 
    $xmlStr=str_replace("&",'&amp;',$xmlStr); 
    return $xmlStr; 
    } 

    // Opens a connection to a mySQL server
    $connection=mysql_connect ($db_host, $username, $password);
    if (!$connection) {
      die('Not connected : ' . mysql_error());
    }

    // Set the active mySQL database
    $db_selected = mysql_select_db($database, $connection);
    if (!$db_selected) {
      die ('Can\'t use db : ' . mysql_error());
    }

    // Select all the rows in the locations table
    $query = "SELECT itinerary_link.itineraryID, itinerary_link.coursesID, itinerary_courses.coursename, courses.lat, courses.lng FROM itinerary_link LEFT JOIN itinerary_courses ON itinerary_link.coursesID = itinerary_courses.coursesID
 LEFT JOIN courses ON courses.coursename = itinerary_courses.coursename WHERE itineraryID=!!!! ORDER BY coursename";
    $result = mysql_query($query);
    //$ti1 = "U8abKhsdiu";
    //$hashed = $row['coursename'];
    //$bh= sha1($hashed);
    //$tileimage = sha1("$bh$ti1");
    if (!$result) {
      die('Invalid query: ' . mysql_error());
    }

    header("Content-type: text/xml");

    // Start XML file, echo parent node
    echo '<markers>';

    // Iterate through the rows, printing XML nodes for each
    while ($row = @mysql_fetch_assoc($result)){

    // Define variables for infoWindow images   
      // ADD TO XML DOCUMENT NODE
      echo '<marker ';
      echo 'name="' . parseToXML($row['coursename']) . '" ';
      echo 'lat="' . $row['lat'] . '" ';
      echo 'lng="' . $row['lng'] . '" ';
      echo '/>';
    }

    // End XML file
    echo '</markers>';

    ?>
4

1 に答える 1

0

まだ投稿にコメントすることはできません。または、説明を求めたいだけです。しかし、私はあなたがこのスクリプトをどのように使用しているかについて仮定する必要があります:

このスクリプトを使用するページからこのスクリプトにアクセスする場合includeは、使い慣れた方法で$_GETと$_POSTを使用できます。

しかし、あなたが動的に言ったように、それはあなたがそれをしている方法ではないのではないかと思います!

つまり、AJAX(非同期javascriptおよびxml)またはjQueryのより単純なajax関数を使用して、更新するページからスクリプトを呼び出すことを意味します。

アイデアは、更新したいページからjQueryまたはAJAXを使用してこのスクリプトを呼び出し、その結果(XML)を使用してページを更新することです。

これらのメソッドを使用すると、ポストGETおよびPOST情報も送信できます。以下の例はそれらの使用法を示していますが、適切で完全な実装を確認するには、リンクをたどる必要があります。

どちらの方法を選択しても、PHPの最後では、使い慣れたものと同じ$ _GET / $_POSTを使用します。

AJAX:ajaxRequest.open("GET", "ajax-example.php" + queryString, true);

完全な例:http ://www.tizag.com/ajaxTutorial/ajax-javascript.php

jQuery:$.get("test.php", { name:"Donald", town:"Ducktown" });

完全な例:http ://www.w3schools.com/jquery/ajax_get.asp

于 2013-02-18T21:02:57.863 に答える