Я использую amCharts и как указано в руководстве здесь:
https://www.amcharts.com/kbase/saving-exported-chart-image-server/
это способ сохранить данные из экспорта на ваш веб-сервер, а не загружать их для клиента:
JQuery:
jQuery.post( "save.php", {
imageData: encodeURIComponent( data )
}
PHP:
<?php
$data = urldecode($_POST['imageData']);
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('image.png', $data);
?>
И это прекрасно работает. Однако что, если я хотел бы передать другой параметр в дополнение к imageData? Какой будет синтаксис для PHP и jQuery? Я пробовал множество вещей, но каждый раз, когда другой параметр отображается пустым в PHP.
Ehi!
Вы можете попробовать что-то вроде этого! 🙂
Javascript
jQuery.post( "save.php", {
imageData: encodeURIComponent( data ),
variable1: 123,
variable2: "hello!",
variable3: true,
});
PHP
<?php
$data = urldecode($_POST['imageData']);
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('image.png', $data);
$variable1 = $_POST['varible1'];
$variable2 = $_POST['varible2'];
$variable3 = $_POST['varible3'];
?>
До свидания! 😉
Функции успеха и ошибок помогут выявить проблему.
$.ajax({
url: "save.php",
data: {
imageData: encodeURIComponent( data ),
data2: 'image name'
},
type: 'post',
success: function(xhr) {
alert(xhr);
},
error: function(error) {
alert(error);
}
});
Вы можете использовать это:
$.post("save.php",{
data1:"This is data1",
data2:"This is data2",
data3:"This is data3"},
function(dataComingFromSaveDotPhp){
//you can optionally create a function here to handle PHP page's output
alert(dataComingFromSaveDotPhp); //alerts save.php's output, shown below
}
);
И вы можете использовать их в php следующим образом:
$data1=$_POST["data1"];
$data2=$_POST["data2"];
$data3=$_POST["data3"];
echo $data1; //Output: "This is data1"echo $data2; //Output: "This is data2"echo $data3; //Output: "This is data3"