2013-09-11 3 views
2

Здесь у меня есть скрипт, который поможет мне получить места из API google places. Итак, теперь я хочу сохранить все это в mysql, но как? Я новичок в mysql и php, и как хранить данные, которые я получаю из мест Google в базу данных?Данные из кода javascript вставляются в базу данных mysql

Что мне нужно сделать здесь? Может ли кто-нибудь показать мне мой пример ...

Как совместить php и javascript;

КОД: http://jsbin.com/AlEVaCa/1

Поэтому мне нужно хранить данные, которые я получил от Google:

google.maps.event.addListener(marker,'click',function(){ 
     service.getDetails(request, function(place, status) { 
      if (status == google.maps.places.PlacesServiceStatus.OK) { 
      var contentStr = '<h5>'+place.name+'</h5><p>'+place.formatted_address; 
      if (!!place.formatted_phone_number) contentStr += '<br>'+place.formatted_phone_number; 
      if (!!place.website) contentStr += '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>'; 
      contentStr += '<br>'+place.types+'</p>'; 
      infowindow.setContent(contentStr); 
      infowindow.open(map,marker); 
      } else { 
      var contentStr = "<h5>No Result, status="+status+"</h5>"; 
      infowindow.setContent(contentStr); 
      infowindow.open(map,marker); 
      } 
     }); 

    }); 

Я хочу, чтобы хранить все place.name, веб-сайт ... и т.д. данных в MyDatabase. Как это сделать? Есть ли способ хранения данных?

ответ

2

Используйте AJAX для отправки данных в файл PHP.

Использование JQuery $ .post() - метод AJAX для отправки данных в PHP файл

data = "name="+name+"&place="+website; 
$.post('file_to_store.php', data, function(data) { 
    //Here you can get the output from PHP file which is (data) here 
}); 

Чистый JavaScript способ

function loadXMLDoc() 
{ 
    var xmlhttp; 
    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) 
    { 
     document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 

    data = "name="+name+"&place="+website; 
    xmlhttp.open("POST","file_to_store.php",true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send(data); 
} 

В file_to_store.php получать все данные из $ _POST [] глобальной массив

if(isset($_POST)){ 
    $name = $_POST['name']; 
    $website = $_POST['website']; 
    //Do same for all other variables 

    //Steps to insert Data into Database 
    //1. Connect to database 
    //2. Select Database 
    //3. Generate Database Insert Query 
    //4. Run mysql Query to insert 

    // Return appropriate return back to Javascript code - Success or Failure 
} 
+0

да, как сделать цикл здесь, чтобы поместить данные в mysql: http://jsbin.com/AlEVaCa/3/edit –

+0

$ con = mysqli_connect (HOST, USER, PASSWORD, DATABASE); // Проверьте подключение if (mysqli_connect_errno()) { echo "Не удалось подключиться к MySQL:". mysqli_connect_error(); } mysqli_query ($ con, "INSERT INTO tablename (Место, имя, сайт) VALUES ('USA', 'Marco Jordan', 35)"); mysqli_close ($ CON); –

0

использовать serialize ($ data), затем поместить его в базу данных, использовать unserialize() после получения данных из db.

дополнение: это будет хранить необработанные данные, вам также понадобится парсер.

addition2: жаль, что я предположил, что вы получили массив,

альтернативного решения, если вы получили ноны данных массива: вы можете использовать base64_encode ($ raw_data) для хранения и base64_decode ($ encoded_data) использовать кодированные данные из sql.

+0

но как это будет выглядеть в моем примере ... –

+0

Я предположил, что у вас уже есть сырье данные из Google. вы запрашиваете получение данных из Google? – alpera

+0

Да, я получил исходные данные и как их сохранить сейчас? json_encode ??? –

Смежные вопросы