Vinnaren i pepparkakshustävlingen!
2018-02-19, 19:36
  #61
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Proton
Och problemet är att....vad?

Istället för "det fungerar inte" kanske du kan upplysa oss om VAD som inte funkar?

Har ingen lust att läsa igenom hela koden, så vad är det som strular med den?


sorry.

nä det är det som var innan med, angående att få ut svars alternativen, har gjort ett ojbekt för det tror jag, men vet inte om det är rätt nämligen, dock har jag nog kanske inte gjort ett pbjekt till min for in loop, hur skulle den kunna se ut så den känner av alterntiven vad som ska dyka fram antingen input eller radiobuttons. det jag strugglar med just nu nämligen.
Citera
2018-02-19, 22:06
  #62
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
sorry.

nä det är det som var innan med, angående att få ut svars alternativen, har gjort ett ojbekt för det tror jag, men vet inte om det är rätt nämligen, dock har jag nog kanske inte gjort ett pbjekt till min for in loop, hur skulle den kunna se ut så den känner av alterntiven vad som ska dyka fram antingen input eller radiobuttons. det jag strugglar med just nu nämligen.
Du har ju redan kod för att avgöra, samt rita ut om det ska vara radioknappar eller en simpel textbox.

Vad ditt övriga svamlande beträffar undviker jag att kommentera, mer än att det är i det närmaste obegripligt vad du vill ha sagt.

Vad betyder exempelvis
Citat:
har gjort ett ojbekt för det tror jag, men vet inte om det är rätt nämligen, dock har jag nog kanske inte gjort ett pbjekt till min for in loop, hur skulle den kunna se ut så den känner av alterntiven vad som ska dyka fram antingen input eller radiobuttons
Det där är ju rena rotvälskan, vad är det för objekt du svamlar om?

Du har ju redan koden i klipp-och-klistravänligt format, är det så att du behöver nån som klipper och klistrar ihop ett fungerande script till dig med?
Citera
2018-02-20, 12:55
  #63
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Proton
Du har ju redan kod för att avgöra, samt rita ut om det ska vara radioknappar eller en simpel textbox.

Vad ditt övriga svamlande beträffar undviker jag att kommentera, mer än att det är i det närmaste obegripligt vad du vill ha sagt.

Vad betyder exempelvis Det där är ju rena rotvälskan, vad är det för objekt du svamlar om?

Du har ju redan koden i klipp-och-klistravänligt format, är det så att du behöver nån som klipper och klistrar ihop ett fungerande script till dig med?


Nej det behövs inte asså, lär mig bättre om jag ser koden framför mig, så fungerar jag.

jag vet att jag har det mesta av koden klar för att det ska fungera, men det är något som saknas för att det ska fungera, så det verkligen skrivs ut om du förstår hur jag menar. Frågan skrivs ut, men inget svarsalternativ dyker fram, det är det som är problemet, det är något som saknas i js koden men vet inte exakt vad för att det ska fungera.
Citera
2018-02-20, 13:35
  #64
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
Nej det behövs inte asså, lär mig bättre om jag ser koden framför mig, så fungerar jag.

jag vet att jag har det mesta av koden klar för att det ska fungera, men det är något som saknas för att det ska fungera, så det verkligen skrivs ut om du förstår hur jag menar. Frågan skrivs ut, men inget svarsalternativ dyker fram, det är det som är problemet, det är något som saknas i js koden men vet inte exakt vad för att det ska fungera.
Ok, då kan man ju gissa på att det är fel i delen där svarsalternativen ska ritas ut.

Vilket av dem är det som inte funkar? Är det fallet med textboxen. eller är det fallet där du ska ha ut radioknapparna?

Har du kollat i js-konsollen i webläsaren om du får några fel där? Vilka i sådana fall?

Återigen är "det funkar inte" totalt intetsägande.

Om vi kollar på vad för jsondata du har fått ut (efter det att nån postade den här, ser det ju ut som om man tänkt lite galet.

Raden
Kod:
for (let alt in question.alternatives
förutsätter att alternatives är en Array, men så är det ju inte, det är ett objekt.

Det man behöver göra är att fiska ut objektet alternatives, loopa igenom alla nycklarna och för varje nyckel ta reda på tillhörande värde.

Börja nu inte svamla om input och vad tusan det nu är, börja istället med att få tag på en konsollutskrift som ser ut nåt sånt här:
Kod:
key "alt1" value "2" 
för varje nyckel-värdepar du har i objektet.

När du fått till utskrifterna på detta sätt kan du fundera på hur du ska proppa in dessa i dina radioknappar.

Hint:
__________________
Senast redigerad av Proton 2018-02-20 kl. 13:44.
Citera
2018-02-20, 14:33
  #65
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Proton
Ok, då kan man ju gissa på att det är fel i delen där svarsalternativen ska ritas ut.

Vilket av dem är det som inte funkar? Är det fallet med textboxen. eller är det fallet där du ska ha ut radioknapparna?

Har du kollat i js-konsollen i webläsaren om du får några fel där? Vilka i sådana fall?

Återigen är "det funkar inte" totalt intetsägande.

Om vi kollar på vad för jsondata du har fått ut (efter det att nån postade den här, ser det ju ut som om man tänkt lite galet.

Raden
Kod:
for (let alt in question.alternatives
förutsätter att alternatives är en Array, men så är det ju inte, det är ett objekt.

Det man behöver göra är att fiska ut objektet alternatives, loopa igenom alla nycklarna och för varje nyckel ta reda på tillhörande värde.

Börja nu inte svamla om input och vad tusan det nu är, börja istället med att få tag på en konsollutskrift som ser ut nåt sånt här:
Kod:
key "alt1" value "2" 
för varje nyckel-värdepar du har i objektet.

När du fått till utskrifterna på detta sätt kan du fundera på hur du ska proppa in dessa i dina radioknappar.

Hint:

tack. kollade igenom länken, är inte riktigt hundra på hur det fungerar. Hur hade du gjort annars för att fiska ut objeketet alternatives och loopa igenom alla nycklarna i detta fall?

let q = { "key1": "value1", "key2": "value2"}

hur menas det med key1 och value1? Vad ska jag sätta in där för att hämta ut "nycklarna" som du menar, så man kan loopa igenom objektet alternatives?
Citera
2018-02-20, 15:07
  #66
Medlem
Worldnatures avatar
Kod:
async function myQuiz () {
  let myQ = await window.fetch(`http://vhost3.lnu.se:20080/question/1`)
  let jsonQ = await myQ.json()
  return jsonQ.question
}
myQuiz().then((text) => {
  let qDiv = document.querySelector('#questions')
  let quest = document.createElement('p')
  quest.innerHTML = text
  qDiv.appendChild(quest)
})

let alternatives = this.jsonQ.alternatives
let answerURL = 'http://vhost3.lnu.se:20080/answer/1'
let answer = {answer: 0}

async function getNextQ (Q) {
  let question = await myQuiz(myQ)

  answerURL = question.nextAnswerUrl

  if(question.alternatives === undefined) {
  let fAnswer = document.createElement('input')
  fAnswer.setAttribute('text', 'type', 'id', 'answerForm', 'name', 'answerForm')
  fo.appendChild(fAnswer)
} else {
  for (let prop in question.alternatives) {
    let rButton = document.createElement('input')
    let label = document.createElement('label')
    rButton.setAttribute('type', 'radio', 'value',`${prop}`)
    rbutton.setAttribute('id', `${prop}`, 'name', 'radioAnswer')
    label.setAttribute('for', `${prop}`)
    label.textContent = `${question.alternatives[prop]}`
    fo.appendChild(rButton)
    fo.appendChild(label)
  }
}
}

async function request (URL) {
  const response = await window.fetch(URL)
  const data = await response.json()
  question = data.question
  answerURL = nextURL
  alternatives = data.alternatives
}

async function response (answerURL) {
  let answerR = await window.fetch(this.answerURL, {
    method: 'post',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(answer)
  })
}

detta kan inte vara på rätt väg? med att skapa frågan, som skrivs ut, sedan i for loopen så känner den av i alternatives om det är fler än 1 svar och väljer då antingen input eller radiobuttons?
Citera
2018-02-20, 15:47
  #67
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
Kod:
async function myQuiz () {
  let myQ = await window.fetch(`http://vhost3.lnu.se:20080/question/1`)
  let jsonQ = await myQ.json()
  return jsonQ.question
}
myQuiz().then((text) => {
  let qDiv = document.querySelector('#questions')
  let quest = document.createElement('p')
  quest.innerHTML = text
  qDiv.appendChild(quest)
})

let alternatives = this.jsonQ.alternatives
let answerURL = 'http://vhost3.lnu.se:20080/answer/1'
let answer = {answer: 0}

async function getNextQ (Q) {
  let question = await myQuiz(myQ)

  answerURL = question.nextAnswerUrl

  if(question.alternatives === undefined) {
  let fAnswer = document.createElement('input')
  fAnswer.setAttribute('text', 'type', 'id', 'answerForm', 'name', 'answerForm')
  fo.appendChild(fAnswer)
} else {
  for (let prop in question.alternatives) {
    let rButton = document.createElement('input')
    let label = document.createElement('label')
    rButton.setAttribute('type', 'radio', 'value',`${prop}`)
    rbutton.setAttribute('id', `${prop}`, 'name', 'radioAnswer')
    label.setAttribute('for', `${prop}`)
    label.textContent = `${question.alternatives[prop]}`
    fo.appendChild(rButton)
    fo.appendChild(label)
  }
}
}

async function request (URL) {
  const response = await window.fetch(URL)
  const data = await response.json()
  question = data.question
  answerURL = nextURL
  alternatives = data.alternatives
}

async function response (answerURL) {
  let answerR = await window.fetch(this.answerURL, {
    method: 'post',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(answer)
  })
}

detta kan inte vara på rätt väg? med att skapa frågan, som skrivs ut, sedan i for loopen så känner den av i alternatives om det är fler än 1 svar och väljer då antingen input eller radiobuttons?
Är det ett påstående eller en fråga? Vad händer om du kör koden?

Som jag sa tidigare är inte alternatives en Array, det är ett objekt, därför kommer du inte få ut något ur din forloop.

Om vi tar koden som finns på sidan jag länkade till så är ju en lösning nåt sånt här, helt otestat:

Kod:
var = { "key1""value1""key2""value2"};

for(var 
key in Object.keys(o){
var 
value o[key];
console.log("key = " key "value = " value);


Det där bör ju kunna funka.

Applicerat på din kod så hade du kört Object.Keys på ditt objekt "alternatives" och sen hade du fortsatt därifrån.

Kolla på det jsondata jag friserade till dig förut så ser du att alternativesobjektet är uppställt på precis samma sätt som "o" i detta fall.
Citera
2018-02-20, 16:10
  #68
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Proton
Är det ett påstående eller en fråga? Vad händer om du kör koden?

Som jag sa tidigare är inte alternatives en Array, det är ett objekt, därför kommer du inte få ut något ur din forloop.

Om vi tar koden som finns på sidan jag länkade till så är ju en lösning nåt sånt här, helt otestat:

Kod:
var = { "key1""value1""key2""value2"};

for(var 
key in Object.keys(o){
var 
value o[key];
console.log("key = " key "value = " value);


Det där bör ju kunna funka.

Applicerat på din kod så hade du kört Object.Keys på ditt objekt "alternatives" och sen hade du fortsatt därifrån.

Kolla på det jsondata jag friserade till dig förut så ser du att alternativesobjektet är uppställt på precis samma sätt som "o" i detta fall.


okok jag tar bort hela getnextq funktionen med for loopen. jag börjar om från början istället.

Kod:
async function myQuiz () {
  let myQ = await window.fetch(`http://vhost3.lnu.se:20080/question/1`)
  let jsonQ = await myQ.json()
  return jsonQ.question
}
myQuiz().then((text) => {
  let qDiv = document.querySelector('#questions')
  let quest = document.createElement('p')
  quest.innerHTML = text
  qDiv.appendChild(quest)
})

här hämtar jag ut frågan. en fråga bara, är detta ett bra sett, eller borde man göra det på ett annat sett som blir enklare framöver?

Vad bör jag bygga på nu först om främst, efter jag har hämtat ut frågan?

jag har länken "http://vhost3.lnu.se:20080/answer/1"

Något jag bör göra med denna efter att jag hämtat ut fråga, eller hur ska jag ta mig vidare på enklast sett och snabbast? Börjar om från början, så min js fil ser endast ut så som längst upp där med koden som skriver ut frågan nu.
Citera
2018-02-20, 16:18
  #69
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
okok jag tar bort hela getnextq funktionen med for loopen. jag börjar om från början istället.

Kod:
async function myQuiz () {
  let myQ = await window.fetch(`http://vhost3.lnu.se:20080/question/1`)
  let jsonQ = await myQ.json()
  return jsonQ.question
}
myQuiz().then((text) => {
  let qDiv = document.querySelector('#questions')
  let quest = document.createElement('p')
  quest.innerHTML = text
  qDiv.appendChild(quest)
})

här hämtar jag ut frågan. en fråga bara, är detta ett bra sett, eller borde man göra det på ett annat sett som blir enklare framöver?

Vad bör jag bygga på nu först om främst, efter jag har hämtat ut frågan?

jag har länken "http://vhost3.lnu.se:20080/answer/1"

Något jag bör göra med denna efter att jag hämtat ut fråga, eller hur ska jag ta mig vidare på enklast sett och snabbast? Börjar om från början, så min js fil ser endast ut så som längst upp där med koden som skriver ut frågan nu.
Men nej....

Det var väl inget fel på den, felet var bara hur du fick tag på nycklar och värden.

Har du fått tag på frågan bör du väl skriva ut den, samt avgöra om du ska rita ut en textbox eller radioknappar.
Citera
2018-02-20, 16:22
  #70
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Proton
Men nej....

Det var väl inget fel på den, felet var bara hur du fick tag på nycklar och värden.

Har du fått tag på frågan bör du väl skriva ut den, samt avgöra om du ska rita ut en textbox eller radioknappar.

okok, det som är problemet, jag vet inte hur jag får tag i nycklarna eller värden på rätt sett. det jag behöver hjälp med nämligen.

frågan har jag fått tag i och utskriven, men vet inte om jag har avgjort om jag ska skriva ut en textbox eller radioknappar
Kod:
async function getNextQ (Q) {
  let question = await myQuiz(myQ)

  answerURL = question.nextAnswerUrl

  if(question.alternatives === undefined) {
  let fAnswer = document.createElement('input')
  fAnswer.setAttribute('text', 'type', 'id', 'answerForm', 'name', 'answerForm')
  form.appendChild(fAnswer)
} else {
  for (let prop in question.alternatives) {
    let rButton = document.createElement('input')
    let label = document.createElement('label')
    rButton.setAttribute('type', 'radio', 'value',`${prop}`)
    rbutton.setAttribute('id', `${prop}`, 'name', 'radioAnswer')
    label.setAttribute('for', `${prop}`)
    label.textContent = `${question.alternatives[prop]}`
    form.appendChild(rButton)
    form.appendChild(label)
  }
}
}

med denna kod.

Hade varit grymt nice, om du har tid och lust att visa hur du exakt menar hur man får tag i nycklarna och värderna till detta.
Citera
2018-02-20, 16:52
  #71
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
okok, det som är problemet, jag vet inte hur jag får tag i nycklarna eller värden på rätt sett. det jag behöver hjälp med nämligen.

frågan har jag fått tag i och utskriven, men vet inte om jag har avgjort om jag ska skriva ut en textbox eller radioknappar
Kod:
async function getNextQ (Q) {
  let question = await myQuiz(myQ)

  answerURL = question.nextAnswerUrl

  if(question.alternatives === undefined) {
  let fAnswer = document.createElement('input')
  fAnswer.setAttribute('text', 'type', 'id', 'answerForm', 'name', 'answerForm')
  form.appendChild(fAnswer)
} else {
  for (let prop in question.alternatives) {
    let rButton = document.createElement('input')
    let label = document.createElement('label')
    rButton.setAttribute('type', 'radio', 'value',`${prop}`)
    rbutton.setAttribute('id', `${prop}`, 'name', 'radioAnswer')
    label.setAttribute('for', `${prop}`)
    label.textContent = `${question.alternatives[prop]}`
    form.appendChild(rButton)
    form.appendChild(label)
  }
}
}

med denna kod.

Hade varit grymt nice, om du har tid och lust att visa hur du exakt menar hur man får tag i nycklarna och värderna till detta.
Men för fan människa, du har ju fått all kod.

Nu får du fan ge dig och tänka efter lite vad det är som sagts i denna tråd och inte bara blint klippa och klistra.

Nåt sånt här borde det alltså ha sett ut:

Kod:
if(question.alternatives === undefined) {
  
let fAnswer document.createElement('input')
  
fAnswer.setAttribute('text''type''id''answerForm''name''answerForm')
  
form.appendChild(fAnswer)
} else {
  for (
let key in Object.getKeys(question.alternatives)) {
let value questions.alternatives[key];
    
let rButton document.createElement('input')
    
let label document.createElement('label')
    
rButton.setAttribute('type''radio')
rButton.setAttribute('value'value)
    
rbutton.setAttribute('id'key )
rButton.setAttribute('name''radioAnswer')
    
label.setAttribute('for'key)
    
label.textContent key;
    
form.appendChild(rButton)
    
form.appendChild(label)
  }


Nåtning sådär funkar eventuellt om man fixar till måsvingarna. Försök nu, snälla, förstå vad koden gör och varför det ser ut som det gör tack.
Citera
2018-02-21, 18:19
  #72
Medlem
Worldnatures avatar
suttit här nu och läst igenom en del för att försöka förstå bättre.

Tagit bort alla små errors som finns med, har lite varibalarar som finns men är inte defined ännu, och vissa inte använda, exempel vis let o = objectet

Kod:
async function myQuiz (URL) {
  let myQ = await window.fetch(`http://vhost3.lnu.se:20080/question/1`)
  let jsonQ = await myQ.json()
  return jsonQ.question
}
myQuiz().then((text) => {
  let qDiv = document.querySelector('#questions')
  let quest = document.createElement('p')
  quest.innerHTML = text
  qDiv.appendChild(quest)
})

let answerURL = 'http://vhost3.lnu.se:20080/answer/1'
let questionURL = 'http://vhost3.lnu.se:20080/question/1'

let o = {'key1': 'value1', 'key2': 'value2'}

async function getQuestion (answerURL) {
  let question = await myQuiz(myQ)
  let jsonQ = await myQ.json()
  answerURL = question.nextAURL

  let nextAURL = jsonQ.nextURL
  let alternatives = jsonQ.alternatives

  if (question.alternatives === undefined) {
    let fAnswer = document.createElement('input')
    fAnswer.setAttribute('text', 'type', 'id', 'answerForm', 'name', 'answerForm')
    form.appendChild(fAnswer)
  } else {
    for (let key in Object.getKeys(question.alternatives)) {
      let value = question.alternatives[key]
      let rButton = document.createElement('input')
      let label = document.createElement('label')
      rButton.setAttribute('type', 'radio')
      rButton.setAttribute('value', value)
      rbutton.setAttribute('id', key)
      rButton.setAttribute('name', 'radioAnswer')
      label.setAttribute('for', key)
      label.textContent = key
      form.appendChild(rButton)
      form.appendChild(label)
    }
  }
}
getQuestion()

skriver ut getQuestion() med för att functionen ska skrivas ut och fungera?? stämmer detta??

Är jag på rätt väg mer nu annars, med hur objectet ska se ut som du menade exempelvis?

eller borde jag lägga in variabeln o i funktionen?

jag vet att jag ska jobba med ett object, men i mitt object "o" så finns det {'key1': 'value1', 'key2': 'value2'}

Ska man inte skriva in något annat där för att kunna hämta rätt information från apin meddelanden eller hur exakt fungerar det där? har läst på mer, men inte hittat exakt detta.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback