dongzhang4301
2016-11-23 04:08
浏览 36

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

I am having trouble passing a Javascript array to a PHP array on the same page when the submit button is pressed. I have seen discussion of JSON.stringify and json_encode on other posts, but I am not sure how to use those functions with my 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("
");

                };
            });
    </script>

PHP:

if (!isset($_POST['btn-addkegs'])) {
//I want to set the Javascript array 'kegs' to a php variable here
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dourong8495 2016-11-23 04:25
    已采纳

    Using Ajax will do it for you! I wrote this code that sends an array to PHP on the same page. Once you get the array in PHP you can do whatever you want with it :).Just copy and paste this file and called it index.php to see the result. This will totally help you!

    <?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>
    
    点赞 打赏 评论
  • drlhsfqoa350437979 2016-11-23 04:25

    This can be achieved by using ajax(), its syntax is:

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

    Read more about ajax

    点赞 打赏 评论
  • doulianglou0898 2016-11-23 04:36
     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
    
    点赞 打赏 评论

相关推荐 更多相似问题