2012-06-27 39 views
1

它已經有一段時間我正在尋找一個答案,但就在今天,沒有人發現:阿賈克斯jQuery的 - 簡單的請求沒有回答

我想實現一些Ajax方法張貼在網頁上的一些意見。使用AJAX方法等,例如:

<button id="my-btn">Make an Ajax request!</button> 

<script > 
    $('#my-btn').click(function() { 
    var comment = $('#id1').val(); 
    var m = {$id2}; 
    var data = new Array(); 
    data[0]= comment; 
    data[1]= m; 

    $.post('{$postURL}', data, function(callback_data){ 

    alert('hello'); 

    }); 

    }); 
</script> 

,其中m = {$ ID2};是由於一個聰明的變量。

alert('hello')工作,但php代碼不處理:{$postURL}需要一個方法comment(){$comment = $_POST[$data[0]]; $m = $_POST[$data[1]];...}

因此,postURL就像是:"index.php?post=comment",方法是comment()

當然,當我通過"index.php?post=comment"更換{$postURL},什麼都不會發生在這個意義上,我仍然有alert('hello')消息,但comment()不處理任何事情的方法。

這種方法evenc叫嗎?還是有錯誤的語法,使得$_POST[$data[0]]$_POST[$data[1]] AREN(T承認BT的評論()方法

index.php文件的工作方式是重定向:到另一個PHP頁面,稱之爲mypage.php在這裏我們可以找到comment()方法

此外,一些非常奇怪:當我腐敗$.post("{$postURL}"通過$.post("{$whatever}",我仍然有一個alert('hello')消息,怪異,當我把警報(callback_data);回調函數中,我得到了巨大的!警報消息,其中包括我的整個PHP代碼...

在一個先例的問題,我被告知p UT斯達康因爲Smarty的一些分隔符,像這樣:

$('#my-btn').click(function() {ldelim} 
    var comment = $('#id1').val(); 
    var m = {$id2}; 
    var data = {ldelim} 
     comment: $('#id1').val(), 
     m: {$id2} 
    {rdelim}; 
    $.post("{$postURL}", data, function(callback_data){ldelim} 
     alert('hello'); 
    {rdelim}); 
    {rdelim}); 

但是,什麼都沒有改變,

任何人有一個想法?

最佳,Newben

+0

你能夠提醒PHP代碼?看起來你似乎沒有設置PHP來處理文件。 – pimvdb

+0

首先檢查您生成的html文檔。如果一切正常,那麼問題出在你的php代碼中。 –

+0

事實上,當我在method()(或echo('blabla');)中放置一些隨機重定向頁面時,它似乎沒有被處理 – Newben

回答

0

問題可以是要傳遞數據如JavaScript數組,但如所提到的here它應該是一個地圖或字符串。 試試這個:

<script > 
    $('#my-btn').click(function() { 
    var comment = $('#id1').val(); 
    var m = {$id2}; 
     $.post('<?php echo $postURL ?>', {0 : comment,1 : m}, function(callback_data){ 
      alert('hello'); 
     }); 
    }); 
</script> 
+0

現在我嘗試了,我得到了一個內部服務器錯誤。但是,事實是我試圖在方法()中回顯某些內容並沒有發生任何事情。當我試圖提醒(callback_data)時,我又收到了我所有代碼的巨大消息。確切地說,index.php文件處理另一個php頁面中的一個類,其中的方法comment()是。看來,後ajax請求無法識別的PHP代碼,但將其轉換爲純文本... – Newben

+0

什麼輸出(json /數組)你準確地從你的PHP方法返回?並嘗試在腳本中使用控制檯(callback_data),並將echo「test」;死;在php方法中檢查代碼控制。 –

+0

comment()方法僅將已發佈的評論存儲在數據庫中。所以當我把控制檯(callback_data);我什麼也沒得到,我放鬆了警報('hello')消息,並且回聲測試不起作用。它似乎沒有讀取 – Newben