これを投稿する前に、私はすでに自分の問題を調べました。だからここにある
投稿を使用して値を取得するために 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);
}