web-dev-qa-db-ja.com

ajaxデータをPHPにポストしてデータを返す

Ajaxデータをコントローラー関数にポストして、それを取り戻すにはどうすればよいですか?ある整数を関数に投稿し、別の整数(IDが投稿されたアイテムの総投票数)を取得し、成功した場合はその投票数をエコーし​​たいためです。 「id」をコントローラー機能に投稿する方法がわかりません。私のコードを見てください:

//post this integet
the_id = $(this).attr('id'); 

        $.ajax({
            type: "POST",
            data: the_id,
            url: "http://localhost/test/index.php/data/count_votes",
            success: function(){
                //the controller function count_votes returns an integer.
                //echo that with the fade in here.

                }
            });
11
billa
 $.ajax({
            type: "POST",
            data: {data:the_id},
            url: "http://localhost/test/index.php/data/count_votes",
            success: function(data){
               //data will contain the vote count echoed by the controller i.e.  
                 "yourVoteCount"
              //then append the result where ever you want like
              $("span#votes_number").html(data); //data will be containing the vote count which you have echoed from the controller

                }
            });

コントローラ内

$data = $_POST['data'];  //$data will contain the_id
//do some processing
echo "yourVoteCount";

説明

あなたは混乱していると思います

{data:the_id}

success:function(data){

両方のdataは、明確にするために異なります。

success:function(vote_count){
$(span#someId).html(vote_count);
22
Rafay

JSについては、

data: {id: the_id}
...
success: function(data) {
        alert('the server returned ' + data;
    }

そして

$the_id = intval($_POST['id']);

pHPで

4
Marc B

ではcount_votesはどのように見えるのでしょうか?スクリプトですか? ajax呼び出しから取得したいものはすべて、単純なエコーを使用して取得できます(もちろん、JSONまたはxmlを使用できますが、この単純な例では、次のようにcount_votes.phpに出力する必要があるだけです。

$id = $_POST['id'];

function getVotes($id){
    // call your database here
    $query = ("SELECT votes FROM poll WHERE ID = $id");
    $result = @mysql_query($query);
    $row = mysql_fetch_row($result);

    return $row->votes;
}
$votes = getVotes($id);
echo $votes;

これは単なる疑似コードですが、アイデアがわかるはずです。 count_votesからエコーするものは、ajax呼び出しで「データ」に返されるものです。

3
serialworm