2011-09-02 68 views
0

EDIT3:我使用這個腳本一個Facebook應用程序裏面,不知道該怎麼辦呢

我使用的是後傳遞一個變種的PHP文件:

<div id="talentnum" class="cont_talentnum"><?php echo $number; ?></div> 
<a class="mine_click" href="#"></a> 

JS這裏

var strtalentnum; 
$('.mine_click').live('click', function() { 
    strtalentnum = $(this).closest("li").find(".cont_talentnum").text(); 
    $('#mine').trigger('click'); 

}); 

$("#mine").click(function(){ 
if(strtalentnum){ 
    $.ajax({ 
    type: "POST", 
    url: "fb_test.php", 
    data: strtalentnum, 
    success: function() { 
    var talentnum = strtalentnum; //this is 6203222 
    alert(strtalentnum); 
    } 
    }); 
} 
}); 

和PHP文件是:

<?php 
function fb_test() 
{ echo 'xxx'; 
echo $_GET['strtalentnum']; 
} 
?> 

然後我調用函數中相同的html頁面:

<?php function fb_test(); ?> 

如果我運行這個我只得到xxx。我也得到了成功警報in my case '6203222',所以我知道POST正在發生

,如果我在Chrome網絡報頭看我可以看到:

Request Method:POST 
Status Code:200 OK 
Form Data 
6203222: 

爲什麼我不能讓它使用$_GET['strtalentnum'];

有什麼想法?

感謝

編輯:$_POST['strtalentnum'];不會做的作業既

EDIT2添加HTML

+0

Ajax的傳遞POST沒有得到:'$ _ POST [ 'strtalentnum']' – tttony

+0

或者,如果你的代碼需要一個GET然後改變你AJAX方法調用'type'爲'GET' – Brombomb

+0

使用.data代替http://api.jquery.com/data/ – Galen

回答

1

您需要一個變量名:

var strtalentnum = $('#strtalentnum').val(); 
$("#mine").click(function(){ 
if(strtalentnum){ 
    $.ajax({ 
    type: "POST", 
    url: "fb_test.php", 
    data: "strtalentnum=" + strtalentnum, 
    dataType: 'html', 
    success: function() { 
    var talentnum = strtalentnum; //this is 6203222 
    alert(strtalentnum); 
    } 
    }); 
} 
}); 

形式:

<form method="post"> 
<input id="strtalentnum" type="text" name="strtalentnum" value="526558" /> 
<input id="mine" type="submit" name="submit" /> 
</form> 

測試開始:

<?php 
function fb_test() 
{ echo 'xxx'; 
echo $_POST['strtalentnum']; 
} 
?> 
+0

nope,這裏有些東西是錯的,無法弄清楚 – Patrioticcow

+0

回答更新! – tttony

+0

我看到了這裏,我得到的東西,我需要設置它,以便當我點擊他的圖片,也許我觸發後按鈕 – Patrioticcow

0

使用$_POST,而不是$_GET通過POST方法來訪問傳遞變量

+0

不行,還是行不通 – Patrioticcow

+0

向我們展示HTML表格 –

+0

文章編輯,html很簡單,我通過一個php var到它 – Patrioticcow

0

因爲你必須讓這個由$ _POST ['strtalentnum']不是$ _GET ['strtalentnum']。

0

對於你的數據,你不能傳遞一個字符串變量需要一個你基本上說的名字

fb_test.php?strtalentnum= 

如果它是一個GET。

您的數據($阿賈克斯)改成這樣:

$.ajax({ 
    type: "POST", 
    url: "fb_test.php", 
    data: {strtalentnum: strtalentnum } 
    success: function() { 
    var talentnum = strtalentnum; //this is 6203222 
    alert(strtalentnum); 
    } 
    }); 
+0

仍然無法正常工作,我正在'echo $ _POST ['strtalentnum'];'但沒有結果 – Patrioticcow

+0

在Chrome中,我可以看到表單數據是'strtalentnum:6203085',所以我猜它是發佈的數據,我的理由噸不能得到它 – Patrioticcow

+0

爲什麼你不試試$ _REQUEST,看看是否可行 – Aknosis