通过POST将JavaScript数组发送到PHP

Dam*_*art 4 javascript php arrays jquery post

我试图通过POST将JavaScript数组发送到PHP文件.

JS:

var songlist = ['song1', 'song2', 'song3'];

var sendData = function(){
    var data = songList.join(',')
    $.post('test.php', {data: data}).always(function() {
        window.location = 'test.php';
    });
}
sendData();
Run Code Online (Sandbox Code Playgroud)

test.php的:

<?php
$songData = $_POST['data'];
$songData = explode(',', $songData); 
print_r(array_values($songData));
?>
Run Code Online (Sandbox Code Playgroud)

当sendData(); 指导我test.php我得到:

注意:未定义的索引:数据

当我尝试打印或使用它时,为什么数据变量没有任何值?

Oen*_*n44 5

这不是POST请求的工作原理.阅读有关Ajax的更多信息,但就目前而言,您应该如何做到这一点.

var songlist = ['song1', 'song2', 'song3'];

var sendData = function() {
  $.post('test.php', {
    data: songlist
  }, function(response) {
    console.log(response);
  });
}
sendData();
Run Code Online (Sandbox Code Playgroud)
// test.php
<?php
$songData = $_POST['data'];
print_r($songData);
?>
Run Code Online (Sandbox Code Playgroud)


AGM*_*zim 5

1) $.post('url') - Ajax 请求是通过$.post()方法完成的,并且您给出的"testing.php"url 无效。

2) window.location = 'test.php' - 用于重定向到特定页面,并且您已重定向到'test.php'不带任何参数/数据的页面。这就是为什么它显示“注意:未定义的索引:数据”

3)尝试理解ajax是如何工作的。跟着它 -

var songlist = ['song1', 'song2', 'song3'];

var sendData = function() {
  $.post('test.php', {
    data: songlist
  }, function(response) {
    console.log(response);
  });
}
sendData();
// test.php
<?php
if(isset($_POST)){
    if(isset($_POST['data'])){
    $songData = $_POST['data'];
    print_r($songData);
}}
?>
Run Code Online (Sandbox Code Playgroud)