dongwei9365 2019-07-04 11:18
浏览 85
已采纳

使用php将结果html文件(包含js代码)导入mysql

I am try to get my location using javascript, but when i click submit data not entered to page action.php

geolocation.php

<form action="action.php" method="post">
  <input type="hidden" name="lat" id="geolocation"><br>
  <input type="submit" value="Submit">
</form>

<script>
var z = document.getElementById("geolocation");
navigator.geolocation.getCurrentPosition(showPosition);
function showPosition(position) { z.innerHTML = position.coords.latitude + "&lng=" + position.coords.longitude; }
</script>

action.php

<?php
$lat = $_POST['lat'];
$lng = $_POST['lng'];

include 'koneksi.php'; 

mysqli_query($koneksi,"
INSERT INTO 
`data`(lat,lng)
VALUES
('$lat','$lng') ") or die ("ERROR WHEN INSERTING 1 OR DUPLICATE VALIDATE");
?>
  • 写回答

2条回答 默认 最新

  • dongtieshang5429 2019-07-04 11:34
    关注

    When you send form data to PHP with the POST method, it reads each field's value attribute, not its HTML.

    You can create two hidden fields and set their values in JavaScript, like this:

    <form action="location.php" method="post">
        <input type="hidden" name="lat" id="latitude"><br>
        <input type="hidden" name="lng" id="longitude"><br>
        <input type="submit" value="Submit">
    </form>
    <script>
        const latitude = document.getElementById("latitude");
        const longitude = document.getElementById("longitude");
        navigator.geolocation.getCurrentPosition(showPosition);
    
        function showPosition(position) {
            latitude.value = position.coords.latitude;
            longitude.value = position.coords.longitude;
        }
    </script>
    

    Also be aware that if you don't validate user input, and don't use prepared statements, that you're vulnerable to SQL injections.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?