2016-03-05 44 views
2

下面這兩個代碼的第一部分工作。數據正確傳輸到PHP。jQuery函數.split()不能正常工作,AJAX數據沒有提交

請支付Ajax請求的data下注意'topost':'momo_1'

var linkwjpg = $("#blurpost").attr("src").split("/").pop().split(".", 1); 
$("h1").text(linkwjpg); 
var myInterval = setInterval(function() { 
    $.ajax({ 
     url: 'time.php', 
     type: 'post', 
     data: {'user':'<?php echo $_SESSION["login"] ?>','topost':'momo_1'}, 
     success: function() { 

     } 
    }); 
}, 1000); 

如果我取代「‘momo_1’」與「linkwjpg」,這是在我的情況「momo_1」,它突然獲得了」 t工作了...

var linkwjpg = $("#blurpost").attr("src").split("/").pop().split(".", 1); 
$("h1").text(linkwjpg); 
var myInterval = setInterval(function() { 
    $.ajax({ 
     url: 'time.php', 
     type: 'post', 
     data: {'user':'<?php echo $_SESSION["login"] ?>','topost':linkwjpg}, 
     success: function() { 

     } 
    }); 
}, 1000); 

任何人都可以幫助我嗎? 我一直對一整天,現在仍然找不出什麼問題...

+0

試'數據:JSON.stringify({用戶:,topost :linkwjpg})'' – Banana

+1

linkwjpg'是一個數組,而不是一個字符串 – Andreas

+1

和ofourse,根據@Andreas的評論,確保你發送一個字符串,而不是一個數組。截至目前,'linkwjpg'實際上包含'[「momo_1」]'。做'linkwjpg = linkwjpg [0]' – Banana

回答

2

.split()總是返回一個數組。爲此linkwjpg不僅是字符串"momo_1",但包含字符串數組["momo_1"]

和因爲jQuery處理在data屬性中找到一個數組(thisthis)的方式topost屬性將被提交爲

topost%5B%5D=momo_1 // topost[]=momo_1 (https://jsfiddle.net/5k6jtew2/) 

一種可能的解決辦法是:

var linkwjpg = $("#blurpost").attr("src").split("/").pop().split(".", 1)[0]; 

data: {'user':'<?php echo $_SESSION["login"] ?>','topost':linkwjpg[0]} 
-2

如果linkwjpg是一個數組,我想你一定解決這個問題這條線$("h1").text(linkwjpg);

+0

對不起,我忘了說我用這個來測試變量是否說「momo_1」。所以這是有效的,它是「momo_1」... – Moritz