2015-05-13 6 views
-1

Я использую сервер CPanel, и у меня есть доменное имя в конфиге для моего мобильного приложения, но когда я загружаю индекс и все компоненты (Javascripts, файлы PHP, SCSS, CSS) на сервер и Phonegap и загрузить его на моем мобильном устройстве, он не извлекает данные из таблиц MySQL. Он иногда показывает раскрывающийся список предприятий на локальной машине и мобильном устройстве, но не маркеры, которые хранятся во второй таблице. Я думаю, мне нужно добавить плагины в файл Config, но я не уверен, какие из них. Мне также нужно заставить AJAX или JSON работать. В настоящее время я добавил источник доступа = «мое доменное имя», но он по-прежнему не хочет полностью получать информацию с сервера. Он извлекает все остальные компоненты, но этот PHP, похоже, не имеет своей функциональности. (PS. Приложение отлично работает при открытии с сервера, но не на локальном компьютере). Вот мой код:Внешний домен не передает значения через ajax-запрос

AJAX + JavaScript

 <div id="Manu"> 
     <div class="Cheltenham"> 
      <select id="Cheltenham" class="select" data-theme="d"></select> 
      </div> 

      <!--Map--> 
      <div id="myMap"> 
<script>src="http://maps.googleapis.com/maps/api/js"></script>  
      <script type="text/javascript"> 
/* call the php that has the php array which is json_encoded */ 
     $.ajax({ 

        url: 'http://ct5006-14h.studentsites.glos.ac.uk/FinalProject/cheltenham.php', 
        type: 'GET', 
        dataType: "jsonp", 
        jsonp: 'jsoncallback', 
        crossDomain: true, 
        success: function (data, status) { 
         alert("ajax success"); 
         /* call the php that has the php array which is json_encoded */ 
         //$.getJSON('', function(data){ 
         /* data will hold the php array as a javascript object */ 
        $.each(data, function(key, val){ 
         var x = document.getElementById("Cheltenham"); 
         var option = document.createElement("option"); 
         option.text = val.BUSTYPE; 
         option.value = val.REFERENCE; 
         x.add(option); 

        }); 
       //}); 
        }, 
        error: function (request, status, error) { 
         alert(status); 
        } 
       }); 


      </script> 

      <script src="https://maps.googleapis.com/maps/api/js"></script> 

      <script> 
       $(document).on('click', '#Cheltenham', function() { 
         var x = document.getElementById("Cheltenham"); 
         var referenceID = x.options[x.selectedIndex].value; 
         console.log("referenceID:" + referenceID); 
         console.log("test:" + referenceID); 

         var mapCanvas = document.getElementById('myMap'); 
         var mapOptions = { 
          center: new google.maps.LatLng(51.8979988098144,-2.0838599205017), 
          zoom: 12, 
          mapTypeId: google.maps.MapTypeId.ROADMAP 
         } 
         var map = new google.maps.Map(mapCanvas, mapOptions); 

         $.getJSON('SearchBusinesses.php?REFERENCE='+referenceID, function(data){ 

         /* data will hold the php array as a javascript object */ 
          /* data will hold the php array as a javascript object */ 
          $.each(data, function(key, val){ 

           var v_lati = val.LATITUDE; 
           var v_longi = val.LONGITUDE; 

           var myLatlng = new google.maps.LatLng(v_lati,v_longi); 

           console.log("LatLongNew:" + myLatlng); 

           var marker = new google.maps.Marker({ 
            map: map, 
            icon: 'images/marker.png', 
            position: myLatlng, 
            animation: google.maps.Animation.DROP, 
            draggable: false, 
           }); 

           var contentString = '' + val.NAME; 

           var infowindow = new google.maps.InfoWindow({ 
            content: contentString 
           }); 

           google.maps.event.addListener(marker, 'click', function() { 
            infowindow.open(map, marker); 
           }); 

          }); 

         }); 

         console.log("test1:" + referenceID); 



         google.maps.event.trigger(map, 'resize'); 
       }); 

      </script> 

      <script> 

       function initialize() { 
        var mapCanvas = document.getElementById('myMap'); 
        var mapOptions = { 
         center: new google.maps.LatLng(51.8979988098144,-2.0838599205017), 
         zoom: 12, 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
        } 
        var map = new google.maps.Map(mapCanvas, mapOptions) 
       } 
       google.maps.event.addDomListener(window, 'load', initialize); 
      </script> 

      </div>  
     </div> 

cheltenham.php

<?php 


$servername = "localhost"; 
$username = "..."; 
$password = "..."; 
$dbname = "..."; 

function getEventList(){ 

global $servername, $username, $password, $dbname; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM `BUSINESS_TYPE`"; 
$result = $conn->query($sql); 
$rows = array(); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     $rows[] = $row; 
    } 
} else { 
    //echo "0 results" . "<br>"; 
} 

echo $_GET ['jsoncallback'].'('. json_encode($rows).');'; 
    $conn->close(); 
} 

getEventList(); 

?> 

SearchBusinesses.php

<?php 

$servername = "..."; 
$username = "..."; 
$password = "..."; 
$dbname = "..."; 

$evReference = $_GET['REFERENCE']; 

function getEventOne(){ 

global $servername, $username, $password, $dbname, $evReference; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT `LATITUDE`, `LONGITUDE`, `NAME` FROM `BUSINESSES` where `REFERENCE` = '" . $evReference . "'"; 
$result = $conn->query($sql); 
$rows = array(); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     $rows[] = $row; 
    } 
} else { 
    //echo "0 results" . "<br>"; 
} 
echo json_encode($rows); 
$conn->close(); 
} 

getEventOne(); 

?> 
+0

где ваш Аякса? –

+0

Должен ли я использовать его? Я не знал, что это первый раз, когда я делаю такие вещи. – UZIERSKI

+0

Какой код Ajax нужно добавить? Нужно ли включать его в отдельный файл или внутри индексного файла? – UZIERSKI

ответ

0

Я использовал JSON и просто добавили строку в php, чтобы заставить JSON передавать значения

$.getJSON('http://...', function(data){ 
        /* data will hold the php array as a javascript object */ 
        $.each(data, function(key, val){ 
         var x = document.getElementById("Cheltenham"); 
         var option = document.createElement("option"); 
         option.text = val.BUSTYPE; 
         option.value = val.REFERENCE; 
         x.add(option); 
        }); 
       }); 

В моей chelteham.php я добавил это, и она работала:

 echo json_encode($rows, JSON_FORCE_OBJECT);