0

ajax が期待どおりにデータを投稿しないという問題があります。Codeigniter カレンダー ライブラリを使用しており、各テーブル行とテーブル データ タグにクラスを追加して、テーブル セルをクリックすると以下のコードが起動するようにしました。何がうまくいかないのかわからない

コードは次のとおりです。

<script type="text/javascript">

$('.calendar .day').click(function(){
  get_day_num();
});

function get_day_num()
{
  //this alert shows 'undefined' ??
  alert($(this).find('.day').html());
  //values being passed to sendValue are probably 'undefined' - why?        
  sendValue($(this).find('.day_num').html(),$(this).find('.content').html())
}

function sendValue(day_num,day_data)
{
  $.ajax({
  url: window.location,
  type: 'POST',
  data: {
    day: day_num,
    data: day_data
  },
  complete: function(msg)
  {
    location:reload();
  }
});
}
</script>
4

2 に答える 2

1

scriptタグがページ内にあると仮定すると、headコードをドキュメント対応ハンドラーでラップする必要があります。

<script type="text/javascript">
    $(function() {
        // your code here...
    });
</script>

また、this関数get_day_numではwindow、クリックされた要素ではなく、 になります。要素を関数に渡すか、代わりに関数参照をハンドラーとして使用する必要があります。これを試して:

$('.calendar .day').click(get_day_num);
于 2013-08-21T14:42:04.490 に答える
0
function sendValue(day_num,day_data)
{
  $.ajax({
  url: window.location,
  type: 'POST',
  data: {
    day: day_num,
    data: day_data
  },
  complete: function(msg)// here use success not complete in complete it comes every time whether out put come or not
  {
    location:reload();
  }
});
}

参照ajax

于 2013-08-21T15:03:24.243 に答える