0

私はこれにうんざりしています.ifステートメントがjavascriptで機能していません. 私は js を使用して php と php ファイルを呼び出しています。

私のJavaスクリプトコード

 function like_add(article_id){
$.post('my/like.php', {article_id:article_id}, function(data){
    if(data == 'true'){//this part never works
        alert(data);
    }else{
    alert(data);
    }
});

}

アラートを変更しようとしましたalert('*'+data+'*');

そして、スペースがあることがわかりました * true*。このスクリプトを機能させるにはどうすればよいですか。

コード全体

 function like_add(article_id){
$.post('ajax/like.php', {article_id:article_id}, function(data){

    if(data == 'true'){
        total_votes(article_id);
    }else{
    alert(data);
    }
});

PHP コード

        if(previously_liked($article_id) === true){
        echo 'You\'ve already liked this!';                 
        }else{
            add_like($article_id);
            echo 'true';
        }


function total_votes(article_id){
$.post('ajax/total_votes.php', {article_id:article_id}, function(data){
    $('#article_'+article_id).text(data);

}); }

4

3 に答える 3

2

テストにスペースを含めることができます。

  if (data == ' true') { ... }

または、データでパターン「true」を探すことができます。

  if (/true/.test(data)) { ... }

後者はおそらくより弾力性がありますが、実際には、サーバーがより構造化された、あいまいでないものを返す方が良いでしょう.

于 2012-06-24T13:03:36.920 に答える
0

次のことができると思います:

  1. スペースが含まれていない応答を確認してください。または
  2. 使用するdata = data.replace(/\s/g, "");
于 2012-06-24T13:07:59.757 に答える
0

それがあなたを悩ませている主要なスペースである場合は、試してください

if (data.replace(/^\s+|\s+$/,'').toLowerCase() === 'true')
于 2012-06-24T13:34:12.400 に答える