プロが教えるわが家の防犯対策術!

はじめまして。PHP+MYSQLについては、まだ知識があるものの、Javascriptについては
初心者で知識不足の者です。

twitterのフォローのようなプログラムをphp+mysqlで作成したのですが
これをJavascriptを使用して、ユーザーには画面をまたがずに
「フォローする」⇒「フォローしました」
とさせたいのですが、どうすればよいか行き詰ってしまいました。

ちなみに、php+mysqlのみでは現在下記のとおりになっています。

■フォロー登録画面
 <form name="register" action="adduser.php" method="post">
 <input name="account_id" type="hidden" value="<?= $_SESSION['users_id'] ?>">
 <input name="follow_id" type="hidden" value="<?php varout($users['users_id']) ?>">
 <input name="subtitle" type="hidden" value="$subtitle">
 <input type="submit" value="フォローする">

■mysqlへinsertする画面(adduser.php)
$query = "INSERT INTO watchuser SET
user_from=?,user_to=?,created_at=NOW()";
execQuery($db, $query, array($account_id, $follow_id));

javascriptで制御する為に
フォロー登録画面を下記にように変更し、
<a href="javascript:follow('<?php varout($users['users_id']) ?>');" class="btnBlue" title="フォローする">フォローする</a>

javascript内に、下記のように記述しているのですが
動作せずに困っております。
どなたかお詳しい方、ご連絡いただけますと幸いです。
※【補足】jqueryは、jquery-1.7.1.min.jsを読み込んでいます

function follow(account) {

var url ='/adduser.php';
var data = 'account=' + account;

var btn = $('follow_btn');
var follower_num = $('follow_id');
if (follower_num != null) {
var follower_num_value = parseInt(follower_num.innerHTML);
}

new Ajax.Request(url, {
method: 'post',
parameters: data,
onLoading: function() {
btn.innerHTML = '<img src="/images/loading.gif" />';
},
onComplete: function(httpObj) {

if (httpObj.status == '200') {
btn.innerHTML = '<span class="btnRed">フォローしました!</span>';
if (follower_num != null) {
follower_num.innerHTML = follower_num_value + 1;
}
} else {
var res = httpObj.responseText;
if (res) {
btn.innerHTML = '<span class="error">' + res + '</div>';
} else {
btn.innerHTML = '<span class="error">エラー</div>';
}
}
}
});

}

A 回答 (2件)

フォロー登録画面と同じ様な<form>を用意しておいて


Form.serialize() を使うと簡単だと思います。

//idを振っておきます
<form id="register">
 <input name="account_id" id="account_id" type="hidden" value="~~~">
 <input name="follow_id" id="follow_id" type="hidden" value="~~~">
 <input name="subtitle" id="subtitle" type="hidden" value="~~~">
</form>

//動的に設定するならこんな感じで
$('account_id').value = '123';

new Ajax.Request(url, {
 method: 'post',
 postBody : Form.serialize("register"),
 onLoading: function() {
~~~
    • good
    • 0

かいとうがつきませんね。


このてのかいとうは、にがてです。
なので、かいとうには つながらないかも?

if (httpObj.status == '200') {
もどりちは、もじれつ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!