1

私はjavascriptを初めて使用しますが、何が欠けているのか理解できないようです。私はjqueryのajax関数を試していました。私はこのコードで立ち往生しました。チェックボックスをオンにすると、phpスクリプトが実行され、そのスクリプトのステータスが「ステータス」divに出力されます。

私はこの1時間コードを調べてきましたが、何も見逃していることがわかりません。もちろん、私のjavascriptスキルがかなり低いことはおそらく助けにはなりません。

function playback(){
  $.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    if((document).getElementById('LoopPlayback').checked)
    {
      data: "playback=1",
    }
    else
    {
      data: "playback=0",
    }
    success:function(result){
      $("#Status").html(result);
    }
  });
}

firebugで次のエラーが発生します。

missing : after property id
[Break On This Error] if((document).getElementById('LoopPlayback').checked) 

ありがとう!

4

6 に答える 6

3

少し作り直す必要があります。SQLのCASEステートメントとは異なり、ifを割り当てに含める必要があります。

...
'data': 'playback=' + (document.getElementById('LoopPlayback').checked ? '1' : '0'),
...

これはインラインの3項ステートメントです。または、構造を保持したい場合は、設定を保存してから次のように保存でき.extend()ます。

var ajaxConfig = {
  'url': 'CHangePlayback.php',
  'type': 'GET',
  'data': 'playback=0',
  'success': function(result){
    $('#status').html(result);
  }
};
if (document.getElementById('LoopPlayback').checked){
  ajaxConfig = $.extend(ajaxConfig,{ 'data': 'playback=1' });
}

$.ajax(ajaxConfig);

そしてもちろん、これに対するより簡単な方法は、data変数を作成し、それを次の後に構成内に配置することです。

var data = 'playback=0';
if (document.getElementById('LoopPlayback')){
  data = 'playback=1';
}

$.ajax({
  ...
  'data': data,
  ...
});
于 2012-09-13T15:13:01.857 に答える
2

これに変更して、「if」をインラインで実行することができます。

function playback(){
  $.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    data: "playback=" + (document.getElementById('LoopPlayback').checked ? "1" : "0"),    
    success:function(result){
      $("#Status").html(result);
    }
  });
}
于 2012-09-13T15:14:50.363 に答える
2

これは機能するはずです:

function playback(){
  $.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    data: $('LoopPlayback').val() ? "playback=1" : "playback=0",
    success:function(result){
      $("#Status").html(result);
    }
  });
}

これはオブジェクトであり、フィールド間にコードを記述できません。

{
    url:...,
    type:...,
    data:...,
    success:...
 }
于 2012-09-13T15:16:11.110 に答える
1

オブジェクトリテラルの途中にifステートメントを置くことはできません。ajaxオプションリテラルから移動します。

function playback(){
    var data;

    if(document.getElementById('LoopPlayback').checked) {
        data = "playback=1";
    } else {
        data = "playback=0";
    }

    $.ajax({
        url:"ChangePlayback.php",
        type: "GET",
        data: data,
        success:function(result){
            $("#Status").html(result);
        }
    });
}
于 2012-09-13T15:13:09.453 に答える
0

またはjqueryを使用してそれを行います

 if ($('#LoopPlayback').is(':checked'))
  //your stuff
于 2012-09-13T15:15:50.580 に答える
0

jQueryの素晴らしさをさらに活用した少しクリーン:

$.ajax({
    url:"ChangePlayback.php",
    type: "GET",
    data: "playback=" + ($("#LoopPlayback").is(":checked") ? "1" : "0"),
    success:function(result){
        $("#Status").html(result);
    }
});
于 2012-09-13T15:16:16.183 に答える