I am trying to build a web app where users can use OpenLayers to draw features and then save them either as a download or write to a file on the server which I can collect when I need it. I am happy with the OL3 bit so far. From reading around it seems AJAX is the way to do this so I have managed to included a button in my HMTL which runs a function that runs a php file to create a new file.I was pretty happy that I managed to get an empty text file as a start. So how do I get that file to contain the JSON information? I assume I need to send it from the JS world to PHP somehow? I have seen a answer using jquery which sends data though post but I can't figure out how to run that script on my page.
The Function
function loadXMLDoc()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","run.php",true);
xmlhttp.send();
}
</script>
The button
<button type="button" onclick="loadXMLDoc()">do something</button>
The PHP file (run.php)
<?php
$myfile = fopen("store/anothernewfile.geojson", "w") or die("Unable to open file!");
$txt = ['lyr_site'];
fwrite($myfile, $txt);
fclose($myfile);
?>
Try sending a POST request that contains your JSON object to your PHP file:
Client-side Javascript:
function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'run.php', true);
xmlhttp.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xmlhttp.send(JSON.stringify({ foo: 'Hey', bar: true}));
}
Server-side PHP:
<?php
$request_body = file_get_contents("php://input");
$myfile = fopen("store/anothernewfile.geojson", "w") or die("Unable to open file!");
fwrite($myfile, $request_body);
fclose($myfile);
?>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.