php - 使用 jQuery 将 javascript 数组发送到 php

标签 php jquery arrays

我正在尝试使用 ajax 和 jQuery 将 javascript 数组传递给 php。

我有一个简单的页面,其中包含一系列我可以通过 jQuery UI 选择的数字(见下文)当我选择一组数字时,我使用 array.push 将这些数字添加到名为“shift”的数组中。问题是:将这个数组发送到 PHP 的最简单方法是什么?传过来后它仍然是一个数组吗?我是编码新手,非常感谢我能得到的任何帮助。经过大量研究后,这就是我尝试过的。哦,我已经设法弄清楚如何将表单提交给 PHP,我被困在 jQuery UI 数组上。

example. 9, 1, and 3 have been selected

这是我的 main.php

<!DOCTYPE html>
<html>
<head>

    <title>test</title>


<link rel="stylesheet" type="text/css" href="main.css">

</head>

<body>
<div class = "container">
<form action="post.php" method="post" id="add">
<input type="text" class="leader" name="name" placeholder="Leader">
<input type="text" class="date" name="date" placeholder="date">
<input type="text" class="time" name="time" placeholder="time">
<input type="text" class="score" name="score" placeholder="score">
<input type="submit" id="btn" value="send" />
</form>


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.10.4.custom.js"></script>
<script src="globe.js"></script>


<ul id ="hours_zoned">
    <li class="nine">9</li>
    <li class="ten">10</li>
    <li class="eleven">11</li>
    <li class="twelve">12</li>
    <li class="one">1</li>
    <li class="two">2</li>
    <li class="three">3</li>
    <li class="four">4</li>
    <li class="five">5</li>
    <li class="six">6</li>
    <li class="seven">7</li>
    <li class="eight">8</li>
    <li class="nine">9</li>
</ul>
</div>  




</body>
</html>

这是我的 post.php

 <html>
    <body>


 /* I'm using all of these echoes to verify that the data is coming
 over. Only "shift" fails to come over */

    NAME <?php echo $_POST["name"]; ?><br>
    DATE <?php echo $_POST["date"]; ?><br>
    TIME <?php echo $_POST["time"]; ?><br>
    SCORE: <?php echo $_POST["score"]; ?><br>

    SHIFT: <?php echo $_POST["shift"]; ?> 

    <?php 

    include("db.php");

    $name = $_POST["name"];
    $date = $_POST["date"]; 
    $time = $_POST["time"];



    $query = "INSERT INTO leaders (name, shift_date, shift_time)  VALUES ('$name', '$date', '$time')";     
    $result = $db->query($query);



     ?>

    </body>
    </html>

这是我的globe.js

var shift = []; //create array to store zoned hours

    $(function() {
        $( "#hours_zoned" ).selectable();
            $( "#hours_zoned" ).on('click', 'li', function() {

                $(this).addClass("clicked ui-selected");
                 $( this ).css( "background-color", "#e74c3c" );
                $( this ).selectable({ disabled: true });

                var floorTime = $(this).text(); // get the value of the hour that was clicked
                shift.push(floorTime); // add that hour to the floorTime    
             }); 

    /*$('#add').on('submit', function() {
        var name = $('.leader').val(); */


    $('#btn').on('submit', function() {
        $.ajax({
            type: 'POST',
            url: 'post.php',
            data: shift,
            success: function(msg) {
                alert(msg);
            }
        });
    });

        return false;
    });

最佳答案

您仅发送 key

data: shift,

根据文档 - 对象必须是键/值对。 ( https://api.jquery.com/jQuery.ajax/ )

尝试

data: {shift: shift},

现在就是这样

$('#btn').on('submit', function() {
    $.ajax({
        type: 'POST',
        url: 'post.php',
        data: {shift: shift},
        success: function(msg) {
            alert(msg);
        }
    });
    return false;
});

关于php - 使用 jQuery 将 javascript 数组发送到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283342/

相关文章:

php - 访问存在的数组元素时 undefined offset

javascript - JQuery Columnizer 在一行中有几个 Columnizer 对象。横向扩展...如何?

java - 当按钮的setOnClickListener第二次执行时

php - PHP通知抑制

php - joomla 2.5错误页面

php - Firebug AJAX 请求中止 - 无响应正文或 header (同一域)

javascript - 如何在使用 JQuery 满足条件时自动运行 JS 函数而不会出错?

jquery - 当元素使用 jQuery 离开屏幕时激活滚动条?

c - 如何将新元素添加到 C 中另一个结构数组内部的数组中?

ios - 在 swift 中创建图像数组并连接声音