Javascript 如何知道哪些数据必须通过ajax发送,这是一个特定的问题

Javascript 如何知道哪些数据必须通过ajax发送,这是一个特定的问题,javascript,php,jquery,angularjs,ajax,Javascript,Php,Jquery,Angularjs,Ajax,我正在学习JS,遇到了另一个困难,希望任何人都能帮助我。无论它是jQuery中的解决方案还是Angular中的解决方案,无论如何我都需要这两种解决方案,我只是想得到这个概念。所以,我的HTML中有两种类型的任务,用户可以选择解决哪一种-音频或图形。现在我的JS看起来像: var request = $http({ method: 'POST', url: 'check.php', data: { 'audioAnswer': $scope.audioValue

我正在学习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>

所以问题是-如何理解用户正在解决的任务?只需点击一个按钮,任务就会发生变化,所以在一瞬间你就可以看到一个任务。
任何建议都将不胜感激:)

可能的解决方案是:

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


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

可能的解决方案是:

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


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

您需要在方法外部创建对象,而不是作为方法的参数,如:

 var data = {};
 if($scope.audioValue.data) { data.audioAnswer = $scope.audioValue.data);
 if($scope.userAnswer.data) { data.userAnswer= $scope.userAnswer.data);
 if($scope.imageAnswer.data) { data.imageAnswer= $scope.imageAnswer.data);

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

您需要在方法之外创建对象,而不是作为方法的参数,如下所示:

 var data = {};
 if($scope.audioValue.data) { data.audioAnswer = $scope.audioValue.data);
 if($scope.userAnswer.data) { data.userAnswer= $scope.userAnswer.data);
 if($scope.imageAnswer.data) { data.imageAnswer= $scope.imageAnswer.data);

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

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

像这样:

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'}
});

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

像这样:

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'}
});

在AJAX函数中使用数据之前,请先选择数据。这真的很简单。你需要一种方法来区分用户点击了什么,以及解决了什么,所以基本上你不是问我们如何编写一个简单的
if
条件,而是如何知道你的用户做了什么,而不向我们显示任何代码?可能是@adeneo的重复,你是对的。但我不明白我到底要向你们展示什么才能理解我的问题…@Jay Blanchard对不起,我的问题是错误的和模棱两可的。现在已编辑。在AJAX函数中使用数据之前,请先选择数据。这真的很简单。你需要一种方法来区分用户点击了什么,以及解决了什么,所以基本上你不是问我们如何编写一个简单的
if
条件,而是如何知道你的用户做了什么,而不向我们显示任何代码?可能是@adeneo的重复,你是对的。但我不明白我到底要向你们展示什么才能理解我的问题…@Jay Blanchard对不起,我的问题是错误的和模棱两可的。现在编辑。谢谢你的反馈,我会谢谢你的反馈,我会谢谢你,对不起,我的问题是关于如何解决问题。编辑。无论如何,谢谢你,对不起,我的问题是关于如何解决问题。编辑。无论如何,谢谢你,伙计,对不起,我的问题是如何解决问题。编辑。无论如何,谢谢你,伙计,对不起,我的问题是如何解决问题。编辑。无论如何,谢谢。