javascript - 我需要在 JS 中的 url 旁边添加 HTML "value"的 "select/option"。您知道该怎么做吗?

标签 javascript html

示例: newurl = url + '&类别= 9' + '&难度=困难'

这个想法是形成一个新的 url,它将被另一个调用它的函数占用。

在这里我需要写这个例子,另外我用西类牙语和英语写了一条评论......我希望它能被理解。 我只需要它来完成代码。

index.html

<form name="formul1" class="cont">       
          <select id="cat" name="cat" onchange="selectCat()">
            <option value="">Any Category</option>
            <option value="&category=9">General Knowledge</option>
            <option value="&category=10">Entertaiment: Books</option>
            <option value="&category=11">Entertaiment: Film</option>
            <option value="&category=12">Entertaiment: Music</option>
            <option value="&category=13">Entertaiment: Musicals & Theatres</option>
            <option value="&category=14">Entertaiment: Television</option>
            <option value="&category=15">Entertaiment: Video Games</option>
            <option value="&category=16">Entertaiment: Board Games</option>
            <option value="&category=17">Science & Nature</option>
            <option value="&category=18">Science: Computers</option>
            <option value="&category=19">Science: Mathematics</option>
            <option value="&category=20">Mythology</option>
            <option value="&category=21">Sports</option>
            <option value="&category=22">Geography</option>
            <option value="&category=23">History</option>
            <option value="&category=24">Politics</option>
            <option value="&category=25">Art</option>
            <option value="&category=26">Celebrities</option>
            <option value="&category=27">Animals</option>
            <option value="&category=28">Vehicles</option>
            <option value="&category=29">Entertaiment: Comics</option>
            <option value="&category=30">Science: Gadgets</option>
            <option value="&category=31">Entertaiment: Japanese Anime & Manga</option>
            <option value="&category=32">Entertaiment: Cartoon & Animations</option>
          </select>
        </form>     
        <h5>Select Difficulty:</h5>
        <form name="formul2" class="cont">          
          <select id="diff" name="diff" onchange="selectDiff()">
            <option value="">Any Difficulty</option>
            <option value="&difficulty=easy">Easy</option>
            <option value="&difficulty=medium">Medium</option>
            <option value="&difficulty=hard">Hard</option>
          </select>
        </form>   

game.js

    var btnFetch = document.getElementById('fetch');

  btnFetch.addEventListener('click', function(e) {
    console.log('Would fetch newUrl:', newUrl);
    fetch(newUrl)
  .then(res => {
    return res.json();
  })
  .then(loadedQuestions => {
    console.log(loadedQuestions.results);
    questions = loadedQuestions.results.map(loadedQuestion => {
      const formattedQuestion = {
        question: loadedQuestion.question
      };

      const answerChoices = [...loadedQuestion.incorrect_answers];
      formattedQuestion.answer = Math.floor(Math.random() * 3) + 1;
      answerChoices.splice(
        formattedQuestion.answer - 1,
        0,
        loadedQuestion.correct_answer
      );

      answerChoices.forEach((choice, index) => {
        formattedQuestion["choice" + (index + 1)] = choice;
      });

      return formattedQuestion;
    });

    startGame();
  })
  .catch(err => {
    console.error(err);
  });
});

最佳答案

只需添加一个对象来保存值,onchange 更新其值,然后 join() 它们 - 并将此 newUrl 传递给获取函数。

// var url = 'https://opentdb.com/api.php?amount=20';
//SELECT CATEGORY
//CATEGORY => 8, 9, 10, 11, ..., 32

const obj = {
  url: 'https://opentdb.com/api.php?amount=20',
  difficulty: '',
  category: ''
}
let newUrl = Object.values(obj).join('')

function selectCat() {
  var c = document.getElementById("cat").value;
  console.log(c);
  obj.category = c
  newUrl = Object.values(obj).join('')
  // return c;
}

//SELECT DIFFICULTY
//DIFFICULTY => any, easy, medium, hard
function selectDiff() {
  var d = document.getElementById("diff").value;
  console.log(d);
  obj.difficulty = d
  newUrl = Object.values(obj).join('')
  // return d;
}

/*ANIDAR VALUE DE CATTEGORY Y DIFFICULTY 
  JUNTO A LA URL PARA OBTENER LA NEWURL 

  NEST VALUE TO CATEGORY AND DIFFICULTY
  NEXT TO THE URL TO GET THE NEWURL*/

// click event on button
const btnFetch = document.getElementById('fetch')

btnFetch.addEventListener('click', function(e) {
  console.log('Would fetch newUrl:', newUrl)
  // fetch(newUrl).then(res => {})
})
<button id="fetch">FETCH URL</button><br /><br />

<form name="formul1" class="cont">
  <select id="cat" name="cat" onchange="selectCat()">
    <option value="">Any Category</option>
    <option value="&category=9">General Knowledge</option>
    <option value="&category=10">Entertaiment: Books</option>
    <optiseon value="&category=11">Entertaiment: Film</option>
      <option value="&category=12">Entertaiment: Music</option>
      <option value="&category=13">Entertaiment: Musicals & Theatres</option>
      <option value="&category=14">Entertaiment: Television</option>
      <option value="&category=15">Entertaiment: Video Games</option>
      <option value="&category=16">Entertaiment: Board Games</option>
      <option value="&category=17">Science & Nature</option>
      <option value="&category=18">Science: Computers</option>
      <option value="&category=19">Science: Mathematics</option>
      <option value="&category=20">Mythology</option>
      <option value="&category=21">Sports</option>
      <option value="&category=22">Geography</option>
      <option value="&category=23">History</option>
      <option value="&category=24">Politics</option>
      <option value="&category=25">Art</option>
      <option value="&category=26">Celebrities</option>
      <option value="&category=27">Animals</option>
      <option value="&category=28">Vehicles</option>
      <option value="&category=29">Entertaiment: Comics</option>
      <option value="&category=30">Science: Gadgets</option>
      <option value="&category=31">Entertaiment: Japanese Anime & Manga</option>
      <option value="&category=32">Entertaiment: Cartoon & Animations</option>
  </select>
</form>
<h5>Select Difficulty:</h5>
<form name="formul2" class="cont">
  <select id="diff" name="diff" onchange="selectDiff()">
    <option value="">Any Difficulty</option>
    <option value="&difficulty=easy">Easy</option>
    <option value="&difficulty=medium">Medium</option>
    <option value="&difficulty=hard">Hard</option>
  </select>
</form>

关于javascript - 我需要在 JS 中的 url 旁边添加 HTML "value"的 "select/option"。您知道该怎么做吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58848611/

相关文章:

html - 让 div 覆盖另一个带有 <p> 标签的 div

javascript - 使用 jquery 加载编辑已复制到 html 文件中的 html div

javascript - 自动换行 : ellipsis without css

javascript - 将多个值加载到文本区域

javascript - 如何以编程方式防止网页在特定时间段内刷新?

javascript - 如何用同位素附加图像

javascript - 使用 jquery 滚动显示页面一侧的元素

javascript - 每次按下按钮时更改图像

javascript - jQuery UI Accordion 不适用于 Javascript

javascript - 如何使用谷歌访问 token 获取电子邮件地址?