如何知道哪些数据必须通过ajax特定问题发送

时间:2016-06-30 14:13:16

标签: javascript php jquery angularjs ajax

我正在学习JS并遇到了另一个困难,所以希望任何人都可以提供帮助。无论它是jQuery还是Angular的解决方案,无论如何我需要两者并且只想获得这个概念。所以,我的HTML中有两种类型的任务,用户可以选择他要解决的任务 - 音频或图形。现在我的JS看起来像:

var request = $http({
  method:  'POST',
  url:     'check.php',
  data:    {
    'audioAnswer': $scope.audioValue.data,
    'imageAnswer': $scope.imageValue.data,
    'userAnswer':  $scope.userAnswer
  },
  headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});

正如您现在所看到的,我正在发送用户答案和两个问题ID(音频和图形)。所以我不知道他一直在解决哪一个问题,只是将它与我​​服务器上的用户答案进行比较,显然这不是最好的解决方案......

修改

当前HTML与音频&图形任务看起来像

<div class="cptch_bottom-hold">
   <div class="cptch_player" id='cptch_blue-button' ng-show='show'>
     <i class="fa fa-volume-up cptch_icon-hold" id="cptch_icon">
       <audio ng-src='{{audioSrc.data}}' id="audioplayer"></audio>
       <input type="hidden" name="audio_answer" class="player_input" ng-model='audioValue'>
     </i>
   </div>
   <div class="image-hold" ng-show='!show'>
     <img class='cptch_image' ng-src='{{imageSrc.data}}' ng-if='imageSrc' alt='image'>
     <input type="hidden" name="image_answer" class="image_input" ng-model='imageValue'>
   </div>
</div>

所以问题是 - 如何理解用户正在解决的任务?只需单击一个按钮即可更改任务,因此在一个时刻您只能看到一个任务。 任何建议将不胜感激:)

3 个答案:

答案 0 :(得分:1)

可能的解决方案可能是:

您将事件附加到两个输入,当有人开始输入时,另一个消失 在同一事件中,您可以“保存”#39;输入两者中的哪一个,因此您可以在ajax调用中执行if语句。

在同一事件中,您还应检查输入是否已删除,以便再次显示两个输入。

答案 1 :(得分:1)

您需要在方法之外创建对象,因此不要像方法的参数那样创建:

juxt

答案 2 :(得分:0)

您可以在发送之前创建要发送的数据对象。

像这样:

var dataToBeSent = {};

if (isAudioAnswer) {
    dataToBeSent.audioAnswer = $scope.audioValue.data;
    dataToBeSent.userAnswer = $scope.userAnswer;
} else if (isImageAnswer) {
    dataToBeSent.imageAnswer = $scope.imageValue.data;
    dataToBeSent.userAnswer = $scope.userAnswer;
}

var request = $http({
    method:  'POST',
    url:     'check.php',
    data:    dataToBeSent,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});