簡體   English   中英

通過POST將JavaScript數組發送到PHP

[英]Sending a JavaScript array to PHP via 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();

test.php的:

<?php
$songData = $_POST['data'];
$songData = explode(',', $songData); 
print_r(array_values($songData));
?>

當sendData(); 指導我test.php我得到:

注意:未定義的索引:數據

當我嘗試打印或使用它時,為什么數據變量沒有任何值?

這不是POST請求的工作原理。 閱讀有關Ajax的更多信息,但就目前而言,您應該如何做到這一點。

 var songlist = ['song1', 'song2', 'song3']; var sendData = function() { $.post('test.php', { data: songlist }, function(response) { console.log(response); }); } sendData(); 
 // test.php <?php $songData = $_POST['data']; print_r($songData); ?> 

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);
}}
?>
var songlist = ['song1', 'song2', 'song3'];
var sendData = function(){
var data = songList.join(',')
$.post('testing.php', {data:     data}).always(function() {
window.location = "test.php?data=$data";
});
}
sendData();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM