【问题标题】:Data from javascript code insert to mysql databasejavascript代码中的数据插入mysql数据库
【发布时间】:2013-09-15 09:06:20
【问题描述】:

这里我有一个脚本,可以帮助我从 google places API 获取位置。所以现在我想将所有这些存储到 mysql 中但是如何?我是 mysql 和 php 的新手,如何将我从 google 地方获得的数据存储到数据库中?

我需要在这里做什么?有人可以告诉我我的例子吗...

如何结合php和javascript;

代码:http://jsbin.com/AlEVaCa/1

所以我需要存储从谷歌获得的数据:

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);
          }
        });

    });

我想将所有地点名称、网站...等数据存储到我的数据库中。怎么做? 有没有办法存储这些数据?

【问题讨论】:

    标签: php javascript jquery mysql database


    【解决方案1】:

    使用 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 
     }
    

    【讨论】:

    • 是的,如何在此处创建循环以将数据放入 mysql:jsbin.com/AlEVaCa/3/edit
    • $con=mysqli_connect(HOST, USER, PASSWORD, DATABASE); // 检查连接 if (mysqli_connect_errno()) { echo "Failed to connect to MySQL:" . mysqli_connect_error(); } mysqli_query($con,"INSERT INTO tablename (Place, Name, Website) VALUES ('USA', 'Marco Jordan',35)"); mysqli_close($con);
    【解决方案2】:

    使用serialize($data)然后放入数据库,从db获取数据后使用unserialize()

    另外:这将存储原始数据,您可能还需要一个解析器。

    附加 2:抱歉,我假设您有一个数组。

    如果您有非数组数据的替代解决方案: 您可以使用base64_encode($raw_data) 来存储和base64_decode($encoded_data) 使用来自SQL 的编码数据。

    【讨论】:

    • 我假设您已经从 google 获得了原始数据。你是在问从谷歌检索数据吗?
    • 你能发布一个原始数据示例吗?
    • 这里只能看到地图,给我文字数据
    • 点击提交,你会得到一个数据
    【解决方案3】:

    基本上,在 客户端 端执行的 JavaScript 程序无法直接访问 主机上的 SQL 数据库。 您必须使用 AJAX 向主机,并且主机端软件必须被编程来处理它们。 很多(!)关于这个主题的现有教程已经在那里......无处不在。

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      相关资源
      最近更新 更多