Проблема восстановить переменную, переданную ajax в php - PullRequest
0 голосов
/ 27 марта 2019

У меня есть ajax-вызов POST для getSegnalazioniMappa.php. Когда я пытаюсь восстановить переданную переменную, я замечаю: неопределенная переменная.

Код JavaScript:

$(document).ready(function(){
    $('#gravita').change(function(){
         var index = document.getElementById("gravita").value;  

         $.ajax({
              method: "POST", 
              data:{index:index},
              url: "getSegnalazioniMappa.php",
              processData: false,
              success: function(data){
                 console.log(data);
              },
              error: function(e) {
                 alert(e.responseText);
              },
              dataType: "JSON"//set to JSON   
         }); 
    });
});

Это getSegnalazioniMappa.php

<?php
   require('../../../setup/database_connection.php');
   if(isset($_POST['index'])){  //this one is always false
    $index = $_POST['index'];
   }
?>

HTML

 <select name="gravita" onchange="updateTable(this.value)" style="width: 130px;" class="form-control" id="gravita" required>
        <option value="all" selected>Tutto</option>
        <option value="bassa">Bassa</option>
        <option value="media">Media</option>
        <option value="alta">Alta</option>
 </select>

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Вы получили неопределенное в ошибка , потому что вы не получили никакого ответа от сервера.вы можете увидеть в консоли.

также где onchange="updateTable(this.value)" определено ???

$(document).ready(function(){
    $('#gravita').change(function(){
         var index = $(this).val();  

         $.ajax({
              method: "POST", 
              data:{index:index},
              dataType: "JSON",
              url: "getSegnalazioniMappa.php",
              processData: false,
              success: function(data){
                 console.log(data);
              },
              error: function(xhr,textStatus,err) {
                 console.log("readyState: " + xhr.readyState);
                  console.log("responseText: "+ xhr.responseText);
                  console.log("status: " + xhr.status);
                  console.log("text status: " + textStatus);
                  console.log("error: " + err);
              },
                 
         }); 
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="gravita"  style="width: 130px;" class="form-control" id="gravita" required>
        <option value="all" selected>Tutto</option>
        <option value="bassa">Bassa</option>
        <option value="media">Media</option>
        <option value="alta">Alta</option>
 </select>
0 голосов
/ 27 марта 2019

Ваш PHP-код должен выглядеть следующим образом: -

<?php
   if(isset($_POST['index'])){
    echo $index = $_POST['index'];
   }
?>

ajax-запрос должен быть: -

<script type="text/javascript">
$(document).ready(function(){
    $('#gravita').change(function(){
         var index = document.getElementById("gravita").value;  
         $.ajax({
              method: "POST", 
              data:{index:index},
              url: "getSegnalazioniMappa.php",
              processData: true,
              success: function(data){
                 alert(data);
                 console.log(data);
              },
              error: function(e) {
                 alert(e.responseText);
              },
              dataType: "JSON"//set to JSON   
         }); 
    });
});   
</script>

processData должно быть истинным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...