PHP插入查询与Ajax数据不起作用

时间:2018-10-24 09:02:11

标签: php json ajax

我决定使用Ajax将表单发送到与其连接的PHP文件。 PHP可以正确接收值,但是在创建对数据库的查询时出现错误。 我想了解我哪里写错了,是否有人以后还能解释如何发送文件/ *图像。 谢谢。

PHP

<?php

if(isset($_POST['items']))
{
    $arrayJSON = json_decode($_POST['items']);

    $comune = $arrayJSON -> comune;
    $indirizzo = $arrayJSON -> indirizzo;
    $provincia = $arrayJSON -> provincia;
    $email = $arrayJSON -> email;
    $categoria = $arrayJSON -> categoria;
    $foto = $arrayJSON -> foto;
    $descrizione = $arrayJSON -> descrizione;
    $gravita = $arrayJSON -> gravità;

    $connessione = mysqli_connect('localhost','civicsensethecitizen','') or die (mysqli_errno ($connessione). mysqli_error ($connessione));
    $db = mysqli_select_db($connessione, "my_civicsensethecitizen" ) or die ('Database non trovato!');

    $data = date("d/m/Y");
    $cdt= rand(10000,99999); //da aggiustare con un controllo

    $query = "INSERT INTO Segnalazione (CDT , Gravità, Foto , Descrizione, Stato, Data, CDTKey, Categoria)
    VALUES ('$cdt','$gravita', '$foto', '$descrizione', 'Attivo', '$data',' ', '$categoria')";

    $risultato = mysqli_query($connessione,$query) or die ("Error in query: $query. " . mysqli_connect_error());

    mysqli_close($connessione);

    $response = "true";
}
else
{
    $response = "false";
}

echo $response;
?>

JS和AJAX

        $(function()
        {                
             $('#formHomepage').on('submit', function(event)
             { 

                if(Modernizr.geolocation)
                {           
                    navigator.geolocation.getCurrentPosition(function(position)
                    {   
                      var latitude = position.coords.latitude;
                      var longitude = position.coords.longitude;
                      var bingResource = ajaxGeoReverse(latitude, longitude);

                      var comune = bingResource[0];
                      var indirizzo = bingResource[1];
                      var provincia = bingResource[2];

                      var email = $("#formHomepage input[name='email']").val();
                      var categoria = $("#formHomepage select[name='categoria'] :selected").val(); 
                      var foto = $("#formHomepage input[name='file']").val();
                      var descrizione = $("#formHomepage textarea[name='descrizione']").val();
                      var gravità = $("#formHomepage select[name='gravita'] :selected").val();

                      var segnalazione = {
                        "comune": comune, "indirizzo": indirizzo, 
                        "provincia": provincia, "email": email, 
                        "categoria": categoria, "foto": foto,
                        "descrizione": descrizione, "gravità": gravità
                      }; 

                      $.ajax(
                        {
                          type: 'POST',
                          url: 'https://civicsensethecitizen.altervista.org/php/formSegnalazione.php',
                          data: {items: JSON.stringify(segnalazione)}, 
                          dataType: 'json',
                          success: function(data) 
                          {
                            console.log("data:" + data);
                          },
                          error: function()
                          {
                            alert('Connsessione non riuscita');
                            $('#formHomepage input').text('');
                          }
                        });
                    });
                }

                event.preventDefault();
             });
        });

功能JAVASCRIPT

        function ajaxGeoReverse(latitude, longitude)
        {
            var bingResource = [];

            $.ajax( 
            {
                url: 'https://dev.virtualearth.net/REST/v1/Locations/' + latitude + ',' + longitude,
                async: false,
                data: {
                  key: 'MyKey',
                  o: 'json'
                },
                success: function(data)
                {
                    var result = data.resourceSets[0];

                    if (result) 
                    {
                        if (result.estimatedTotal > 0) 
                        {
                            var comune = JSON.stringify(result.resources[0].address.locality);
                            var indirizzo = JSON.stringify(result.resources[0].address.addressLine);
                            var provincia = JSON.stringify(result.resources[0].address.adminDistrict2);

                            bingResource = [comune, indirizzo, provincia];
                        }
                    } 
                },
                error: function()
                {
                    failGeo();
                }
            });
            return bingResource;
        };

HTML

 <form class="d-flex flex-column align-items-center" method="post" id="formHomepage" style="padding: 15px;background-color: #ffffff;box-shadow: 0px 0px 1em black;padding-top: 30px;padding-bottom: 20px;">
                        <div class="form-group"><input class="form-control" type="email" name="email" required="" placeholder="Email" maxlength="30" autocomplete="on" style="min-width: 250px;"></div>
                        <div class="form-group d-flex flex-column align-items-center"><a class="text-monospace d-flex flex-column align-items-center align-self-center form-btn" href="#" id="fotocamera-button" style="color: #666666;text-decoration: none;border-radius: .25rem;border: 1px solid #ced4da;margin: 10px;padding: 5px;"><i class="fa fa-camera form-btn" style="color: #666666;font-size: 45px;"></i><label class="form-btn" for="fileInput">Carica/Scatta Foto</label></a>
                            <input
                                type="file" accept="image/*" name="file" required="" id="fileInput" style="border: none;width: 0px;height: 0px;"><img class="img-thumbnail d-none" src="#" id="foto-screen" style="max-height: 150px;max-width: 150px;"></div>
                        <div class="form-group"><select class="form-control" name="categoria" required="" style="min-width: 250px;"><optgroup label="Seleziona il problema"><option value="mantoStradale" selected="" >Manto Stradale</option><option value="idrico">Idrico</option><option value="luceGas">Luce e Gas</option><option value="rfifiuti">Rifiuti</option><option value="telecomunicazioni">Telecomunicazioni</option></optgroup></select></div>
                        <div
                            class="form-group"><select class="form-control" name="gravita" style="min-width: 250px;"><optgroup label="Seleziona la tua gravità"><option value="gravitaAlta" selected="">Gravità Alta</option><option value="gravitaMedia">Gravità Media</option><option value="gravitaBassa" >Gravità Bassa</option></optgroup></select></div>
                <div
                    class="form-group"><textarea class="form-control" rows="5" name="descrizione" placeholder="Descrizione" maxlength="120" style="min-width: 250px;"></textarea></div>
            <div class="d-flex flex-row"><button class="btn btn-primary btn-lg" type="submit" style="background-color: #eebd40;font-weight: bold;margin: 5px;">Invia Segnalazione</button><button class="btn btn-primary btn-lg" type="reset" style="background-color: #eebd40;font-weight: bold;margin: 5px;">Reset</button></div>
</form>

0 个答案:

没有答案