私は "thumbsup"と "like"をPHPスクリプトのAJAX/POST経由で投稿するプロジェクトに取り組んでいます。これは、ユーザーがログインしているかどうか(json_encodeを持つ)エラー配列ではなく、処理後に戻ります。 0はそのすべてがOK、1がユーザーがログインしなかったことを意味します。私が書いたsubmit関数は、各ループでそれを再定義した後にエラー変数を返しません。各ループでconsole.log(エラー)を実行すると1が返されますが、click関数でチェックするとfalseが返されます。私は次の2つの機能を持っています:このjsコードで何が問題なのですか?関数から変数を返す
私は何が間違っているのか分かりません。
function submit(tip,varid){
var error = false;
$.post("/rwfr.php", { name: ""+tip+"", id: ""+varid+"" })
.done(function(data) {
var results = jQuery.parseJSON(data);
$(results).each(function(key, value) {
error = value['error'];
return false;
})
});
return error;
}
$(".fa-thumbs-up").click(function(){
var idObj = $(this).parent().parent().attr("data-id");
var act = submit('thumbsup',idObj);
if(act == "1"){
console.log(act);
alert("You must log in before you can rate this video!");
}
});
を参照してください;' each'ループ 'に。 – Oen44
も参照してください[関数内で変数を変更した後に変数が変更されないのはなぜですか? - 非同期コードリファレンス](http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron) –
あなたは知っているsubmit関数は、.done関数が正しく呼び出される前に長く戻りますか? – James