2015-07-10 71 views
1

我面臨一個問題,我不知道如何在標題中理解地描述,對不起。希望它會在文中更清晰。jquery .post(url,params) - 如果params是一個字符串,如何使用它?

我已經做了jquery的ajax後,工作正常。它是這樣的:

var p1 = $.post(url,{what:"Add",d:dokid,u:seluserid}); 
p1.done(function(data){ 
... 

現在,複製另一側(與表單)有很多單選按鈕裏面,我建在{}爲一個字符串(paramlist)的一部分,並試圖做一樣。由此產生的字符串參數列表:

paramlist = {what:"insert",ID:"-1",Name:"",Beschreibung:"",FieldX:"4",FieldY:"4",Roles:"4",FieldZ:"4",FieldN:"4"} 

我得到FieldNames和值通過瀏覽到每個無線電元素。

現在我通過調用。員額:

var p1 = $.post(url,paramlist); 
p1.done(function(data){ 
... 

這似乎沒有這樣的工作方式,爲我的PHP承認失敗後的參數。

$what=$_POST['what']; 

給我PHP公告:未定義指數:什麼... 所以很顯然,我必須將字符串轉換成別的東西。但是如何?我現在沒有搜索條件,所以我想問。 jquery api沒有幫助我。也許我在這些東西中都是一個新手... 任何想法?

我做了什麼來得到它的工作: 去除字符串中的括號{}並把所有的元素」所以現在paramlist樣子:

paramlist = "what":"insert","ID":"-1","Name":"","Beschreibung":"","FieldX":"4","FieldY":"4","Roles":"4","FieldZ":"4","FieldN":"4"} 

然後將字符串轉換爲對象(與String to object in JS幫助下)使用eval:

objparamlist=eval('({' + paramlist + '})'); 

現在呼籲

var p1 = $.post(url,objparamlist); 

作品。

感謝大家的幫助!

+1

停止建設作爲一個字符串,然後,並創建一個對象,而不是和它的工作 – adeneo

+0

我做的字符串轉換(少許修改的)一個對象,我會上方編輯 – Marco

回答

0

U可以試試這個:

var p1 = $.post(url,{data: JSON.stringify(paramlist)}); 

問候

1

這是我做他們.. ..A一點推斷,但更容易閱讀。

$.ajax({ 
    url: "/ajax/url.php", 
    type: "POST", 
    data: { 
     data: JSON.stringify(paramlist) 
    }, 
    success: function.....