Wyślij tablicę Javascript do PHP za pomocą Ajax (nie można odczytać tablicy z PHP)

Sep 10 2020

Mam formularz z prostym przyciskiem. Po kliknięciu przycisku delete_data()wywoływana jest funkcja . Ta funkcja wypełnia tablicę danymi. Chciałbym wysłać tę tablicę do PHP z Ajaxem.

Problem : Podczas korzystania z tego, event.preventDefault();co widzisz w moim kodzie JavaScript, wyświetlane są komunikaty ostrzegawcze („OK”), ale nie otrzymuję echa z mojego skryptu php.

Czy możesz poprawić mój kod poniżej lub powiedzieć mi, co jest nie tak? Wielkie dzięki!

KOD HTML

<form id="form" method="POST"> 
      <button type="button"id="delete" onclick="delete_data();" name="delete"><i class="fa fa-remove" aria-hidden="true"></i> Delete Zone(s)</button>
</form>

KOD JavaScript

function delete_data(){
        
        event.preventDefault();
        
        var checkedIds = $(".chk:checked").map(function() { return this.id; }).toArray(); var Arr = JSON.stringify(checkedIds); $.ajax({
            type: "POST",
            url: "./delete_measurement.php",
            data: {arr: Arr}, 
            cache: false,
            
            success: function(){
                alert("OK");
            }

        });

KOD PHP

<?php
include_once("./conn.php");
    
if(isset($_POST['arr'])){ $arr = json_decode($_POST['arr']); echo $arr; //can't echo
    
}else{ 
    echo "Failed";
    
}
?>

Odpowiedzi

1 Wimanicesir Sep 10 2020 at 18:22

To logiczne, że nie widzisz echa. Dodaj parametr do funkcji sukcesu w następujący sposób:

    $.ajax({
        type: "POST",
        url: "./delete_measurement.php",
        data: {arr: Arr}, 
        cache: false,
        
        success: function(data){
            // This will show what you echo in PHP (in the console)
            console.log(data)
            alert("OK");
        }

    });