0

これを投稿する前に、私はすでに自分の問題を調べました。だからここにある

投稿を使用して値を取得するために ajax を使用しています。しかし、それをデータベースに挿入すると、重複したエントリが生成されるようです。ここに私のajaxコードがあります

var receiverUserIds = FB.ui({
        method: 'apprequests',
        message: 'Test App',
    },

    function (receiverUserIds) {
        $.each(receiverUserIds.to, function (i, v) {
            // console.log(receiverUserIds.request + " " + v);
            $.ajax({
                url: '<?php echo $config["base_url"]; ?>/main/saverequestinfo/?signed_request=<?php echo $_REQUEST["signed_request"]; ?>',
                data: {
                    request_id: receiverUserIds.request,
                    receiver_id: v
                },
                type: 'POST',
                success: function (d) {
                    console.log(receiverUserIds.request + " " + v);
                }
            });
        });
    }
    //http://developers.facebook.com/docs/reference/dialogs/requests/
);

これはajaxによって呼び出されるコードです

function saverequestinfo() {
     $data = array(
    'inv_user_id' => 1,
    'inv_request_id' => $_POST['request_id'],
    'inv_user_fbid' => $this->fb->getUser(),
    'inv_receiver_fbid' => $_POST['receiver_id'],
    'inv_liked' => fb_isLiked($this->fb)
);

$this->main->insertrequest('invitedfriends', $data);

}

これは私のモデルです:

function insertrequest($tbl_name, $data) {
    $date = date('Y-m-d H:i:s');
    $qry = "INSERT INTO `".$tbl_name."` (";
    $c = count($data);
    $cc = 0;
    $f = "";
    $fv = "";
    foreach($data as $i=>$v) {
        $f .= $i;
        $fv .= "'".$v."'";
        if($cc<$c-1) {
            $f .= ",";
            $fv .= ",";
        }
        $cc++;
    }
    $qry .= $f.") VALUES(".$fv.")";

    if ($this->conn->query($qry) !== TRUE) {
        echo $this->conn->error;
        die();
    }
    $this->conn->query($qry);
}
4

0 に答える 0