Я изучал более 3 дней, чтобы найти ответ, подходящий для моей проблемы, но пока ничего не нашел.
Вот проблема:
У меня есть страница php с 3 select на ней, как только пользователь выбрал значение на элементе select, страница отправляет эти значения на страницу php через ajax. Страница php будет извлекать из базы данных широту и долготу в соответствии с выбранными параметрами, затем она будет размещать маркер с этими координатами на карте Google. У меня уже есть API Google Maps.
Когда я отправляю значения на страницу php, консоль chrome возвращает сообщение «POST 500 (внутренняя ошибка службы). Я читал, что это может быть вызвано ошибкой в коде php или сервером. В тот момент, когда я не могу получить доступ к серверу, чтобы увидеть журнал ошибок, я не уверен, что происходит.
Итак, главный вопрос: правильно ли я написал php-код? потому что если я этого не сделаю, мне не придется беспокоить моего босса доступом к серверу.
Если я плохо объяснил себя, пожалуйста, дайте мне знать, я не знаком с вопросами на английском, поэтому, возможно, я написал плохо.
Вот php-страница с ajax
<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
require "connessione.php";
?>
<html>
<head>
<style>
#map {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDslqBC-ZEVJMnuN28gf6lkBrfS_MWMJJg">
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
function funzione_visualizzazione(){
if(document.myForm.comune.value != '' && document.myForm.fabbisogno_totale.value != '' && document.myForm.fabbisogno_coperto.value != '')
{
var comune = document.getElementById("comune").value;
var fabbisogno_coperto = document.getElementById("fabbisogno_coperto").value;
var fabbisogno_totale = document.getElementById("fabbisogno_totale").value;
$.ajax
({
cache:false,
type: "POST",
url: "calcola_area.php",
data: {comune : 'comune', fabbisogno_coperto : 'fabbisogno_coperto' , fabbisogno_totale : 'fabbisogno_totale'},
}).done(function(data){
alert(data);
$("#risultati").append(data);
});
}
else alert("inserire tutti i dati"); //le parentesi graffe sull'else davano errore
}
</script>
</head>
<body>
<?php echo "test";?>
<form name="myForm" action="javascript:funzione_visualizzazione();">
<select id="comune">
<?php
$sql = "SELECT * FROM comuni_new";
$query = mysql_query($sql,$connessione) or die("MySQL error: " . mysql_error($connessione) . "<hr>\nQuery: $query");
while($row=mysql_fetch_array($query)){
$nome_comuni = $row['nome_comuni'];
$id_comuni = $row['id_comuni'];
?>
<option value="<?php echo $id_comuni?>"><?php echo $nome_comuni?></option>
<?php
}
?>
</select>
<select id="fabbisogno_totale">
<option value="5"> 5 </option>
<option value="15"> 15 </option>
<option value="20"> 20 </option>
<option value="25"> 25 </option>
<option value="30"> 30 </option>
</select>
<input id="fabbisogno_coperto" type="number" value="" size="40" maxlength="25" />
<input type="submit" value="Submit">
</form>
<div id="risultati"></div>
</body>
</html>
И php-страница, которая не работает:
<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require "connessione.php";
if(isset($_POST['comune'])){
$id_comune = $_POST['comune'];
}
if(isset($_POST['fabbisogno_totale'])){
$fabbisogno_totale = $_POST['fabbisogno_totale'];
}
if(isset($_POST['fabbisogno_coperto'])){
$fabbisogno_coperto = $_POST['fabbisogno_coperto']
}
$query = mysql_query("SELECT * FROM comuni_new where id_comune='$id_comune'");
while($row=mysql_fetch_array($query)){
$longitudine = $row['longitudine'];
$latitudine = $row['latitudine'];
//altre cose qui che possono serivire
}
echo '<script type="text/javascript">',
'initMap(<?php $latitudine?>,<?php$longitudine?>);',
'</script>'
?><script>
function initMap(latitudine, longitudine){
var myLatLng = {lat: latitudine, lng: longitudine};
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 8,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map
});
}
</script>
<div id="map"></div>
<script type="text/javascript">
initMap();
</script>
<?php
?>
P.s Просто для всех, кто интересуется форматом, я использую возвышенный текст, который дает правильный отступ, возможно, при переполнении стека при копировании и вставке, он был изменен