我正在学习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>
所以问题是 - 如何理解用户正在解决的任务?只需单击一个按钮即可更改任务,因此在一个时刻您只能看到一个任务。 任何建议将不胜感激:)
答案 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'}
});