2 votes

Comment puis-je passer un tableau Javascript à un tableau PHP lors d'un clic sur un bouton ?

J'ai des difficultés à transmettre un tableau Javascript à un tableau PHP sur la même page lorsque le bouton d'envoi est pressé. J'ai vu des discussions sur JSON.stringify et json_encode dans d'autres articles, mais je ne sais pas comment utiliser ces fonctions dans mon code.

JS :

    <script>
        var kegs = [];
        var textarea = document.getElementById("your_textarea");
        $("#kegId").on('keyup', function (e) {
            if (e.keyCode == 13) {
                kegs.push($(this).val());
                $("#kegId").val("");
                textarea.value = kegs.join("\n");

                };
            });
    </script>

PHP :

if (!isset($_POST['btn-addkegs'])) {
//I want to set the Javascript array 'kegs' to a php variable here

1voto

ujwal dhakal Points 394
 As you are using the jquery
var jsArray = makeJavascriptArrayhere //
   $.ajax({
            url: urlToPhpFile,     // file where data processing is done                   
            type: Method,                                  
            data:jsArray,
            success: function(response){    // response from process.php
                // do your stuff here
            }
        });

now in your php file 

var_dump($_POST); //see on network liner tabs

1voto

HenryDev Points 3021

L'utilisation d'Ajax le fera pour vous ! J'ai écrit ce code qui envoie un tableau à PHP sur la même page. Une fois que vous avez le tableau en PHP, vous pouvez faire ce que vous voulez avec :) Il suffit de copier et coller ce fichier et de l'appeler index.php pour voir le résultat. Cela vous aidera totalement !

<?php

  $data = array();
   if(isset($_POST['myArray']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH'])){
   $data = 'You array is: ' . $_POST['myArray'];       
   echo json_encode($data);  
   die();      
   }
?>
 <html>
 <head>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>

<body>
<div id = "random"></div>

<script type = "text/javascript">

$(document).ready(function() {

var arr = [2,4,5,6,7];
var myArray =  JSON.stringify(arr);

$.ajax({
    url: "index.php",
    method: "POST",
    dataType: "json",
    data: {myArray: myArray},
    success: function (result) {
    alert("result: " + result);
    console.log(result);
  $("#random").html(result);
 }
});

});

</script>

</body>
</html>

1voto

Mayank Pandeyz Points 17903

Ceci peut être réalisé en utilisant ajax(), sa syntaxe est :

$.ajax({
        url: 'process.php',     // file where data processing is done                   
        type: 'POST',                                  
        data: {
            var1  :val1,
            var2  :val2
            // parameter set
        },
        success: function(response){    // response from process.php
            // do your stuff here
        }
    });

En savoir plus sur ajax

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X