繁体   English   中英

单击按钮后如何将Javascript数组传递给PHP数组?

[英]How can I pass Javascript array to a PHP array on button click?

当按下提交按钮时,我无法在同一页面上将Javascript数组传递给PHP数组。 我在其他文章中看到了关于JSON.stringify和json_encode的讨论,但是我不确定如何在我的代码中使用这些功能。

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

使用Ajax将为您做到 我写了这段代码,在同一页面上将数组发送给PHP。 一旦在PHP中获得数组,就可以使用它进行任何操作:)只需复制并粘贴此文件,并将其命名为index.php即可查看结果。 这将完全帮助您!

<?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>

这可以通过使用ajax()来实现,其语法为:

$.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
        }
    });

进一步了解ajax

 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM