0

当我加载使用 javascript 的地图 api 时,我无法使用 php 代码从我的 phpMyAdmin 数据库中检索。

它只加载地图javascript。我的数据库中存储了一些数据。任何帮助表示赞赏。谢谢!

最终结果必须能够同时加载到屏幕上(我的数据库数据和地图 api)。

<!DOCTYPE html>
<html>
<body>
<table border="1">
  <tr>
    <th>Routes Available</th>
    <th>Map Direction</th>
    <th>Preferred Routes</th>
  </tr>
  <tr>
    <td><div id="sidebar">
      <form name="form1" method="get" action="" onSubmit  = "getDirections( this.from.value, this.to.value, this.mode.value ); return false;">
        <p>
          <label style="width:50px;display:inline-block;">From:</label>
          <input type="text" size="34" name="from" value=""/>
        </p>
        <p>
          <label style="width:50px;display:inline-block;">To:</label>
          <input type="text" size="34" name="to" value=""/>
        </p>
        <p>
          <label style="width:50px;display:inline-block;">Via:</label>
          <select disabled name="mode" disabled>
          <option value="c">Car</option>
          </select>
          <input type="submit" name="submit" value="Get Directions"  style="margin-left:25px"/>
        </p>
      </form>
      <?php
    //PHP CODE STARTS HERE
     if(isset($_GET['submit'])){
    $db_name="carpool";

    $con = mysql_connect("localhost","root","");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

    mysql_select_db($db_name, $con);

    $from=mysql_real_escape_string($_GET['from']);
    $to=mysql_real_escape_string($_GET['to']);

    $query_for_result=mysql_query("
    SELECT *
    FROM routedetails
    WHERE `from` LIKE '%".$from."%'
    AND `to` LIKE '%".$to."%'
    ");

    echo "<table border=1 width=510>";
    echo "<tr>";
    echo "<td>";
    echo "<h2>From: Search Results</h2><ol>";
    $data_fetch=mysql_fetch_assoc($query_for_result);
    while($data_fetch=mysql_fetch_assoc($query_for_result))
    {
        echo "<li>";
        foreach($data_fetch as $row => $value){
            echo "$row - $value<br />";
                }
        echo "</li><hr/>";
    }
    echo "</tr>";
    echo "</td>";
    echo "</table>";

    echo "</ol>";

    mysql_close();
    }

    ?>
      <div></td>
    <td><div id="map" style="width:600px;height:600px;margin-right:20px;float:left;"></div></td>
    <td><div id="panel"></div>
      <script type="text/javascript" src="http://gothere.sg/jsapi?sensor=false"></script> 
      <script type="text/javascript">
            gothere.load("maps");
            //var directions;
            function initialize() {
                if (GBrowserIsCompatible()) {
                    // Create the Gothere map object.
                    var map = new GMap2(document.getElementById("map"));
                    // Set the center of the map.
                    map.setCenter(new GLatLng(1.362083, 103.819836), 11);
                    // Add zoom controls on the top left of the map.
                    map.addControl(new GSmallMapControl());
                    // Add a scale bar at the bottom left of the map.
                    map.addControl(new GScaleControl());


                    // directions.load("from: Changi Airport to: Orchard Road");
                  }
                  directions = new GDirections(map, document.getElementById("panel"));
            }

            function getDirections(from, to, mode) {
                var travelMode;

                directions.load("from: " + from + " to: " + to, {travelMode: travelMode});
            }

            gothere.setOnLoadCallback(initialize);
        </script></td>
  </tr>
</table>
</body>
</html>
4

1 回答 1

1

您的 html 代码无效,您<ol>在 cell 内打开有序列表<td><h2>...</h2><ol>,但在 table 外关闭它</table></ol>,并且在 row 之后关闭您的单元格</tr></td>。您的输出代码当前如下所示 -

<table border=1 width=510>
   <tr>
      <td>
        <h2>From: Search Results</h2>
          <ol>
            <li>$row - $value<br /></li>
            <hr/>
   </tr>
      </td>
</table>
         </ol>

另外,请尝试删除$data_fetch=mysql_fetch_assoc($query_for_result);,因为它是下一行的副本while($data_fetch=mysql_fetch_assoc($query_for_result))

于 2013-05-18T07:27:10.513 回答