Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou com um certo problema, e o seguinte, estou trazendo do banco um array de stings via Json para popular em minha tele campos criados dinamicamente, então preciso que o máximo de RADIOS seja 5 radios para cada questão exemplo:
A) combo 1 B) combo 2 C) combo 3 D) combo 4 E) combo 5
então ele não popula os radios com os dados do array corretamente, ele fica repetindo as 4 primeiras posições nos outros radios.
poderiam me ajudar ? Desde já agradeço.
success: function(data) {
var perguntas = new Array();
var alternativas = new Array();
// trago os dados via JSON e populo num array local
for (var i = 0; i < data.perguntas.length; i++) {
perguntas.push(data.perguntas[i]);
}
// trago os dados via JSON e populo num array local
for (var i = 0; i < data.alternativas.length; i++) {
alternativas.push(data.alternativas[i]);
}
// Determino que terá no maximo 4 radios cada pergunta
var maximoRadio = 4;
// variavel para armazenar os radios e inputs
var prova = '';
var questoes = '';
var valor = 6.0;
// laço para pegar as questoes
for (var i = 0; i < alternativas.length; i++) {
questoes += '<br /><input id="alternativa" type="radio" />'+alternativas[i]+'</input><br />';
// aqui e onde determina a quantidade de radios (ele tem que entrar mais de uma vez e so esta entrando uma, não me veio uma solução ainda para entrar mais de uma vez e montar os campos)
if(i == maximoRadio){
// laço para pegar as perguntas
for (var j = 0; j < perguntas.length; j++) {
prova += '<br /><input id="pergunta" style = "border: 0 none;" disabled="disabled" type="text" name="pergunta" value="' + perguntas[j] +
'"/><input type="text" id="valorQuestao" style = "border: 0 none;" disabled="disabled" value="'+valor+'"/><br /> <br /> <br />'+questoes;
if(j == 0 || j == 1 || j == 2 || j ==3 || j == 4 || j == 5 || j == 6){
break;
}
}
}
}
// seto na div os campos para montar
document.getElementById("campos").innerHTML = prova;
}eu carrego o Array la no Servlet.
int cod_prova = 0;
boolean trazer = false;
ArrayList<String> perguntas = new ArrayList<String>();
ArrayList<String> alternativa = new ArrayList<String>();
int disciplina = Integer.parseInt(request.getParameter("disciplina"));
int unidade = Integer.parseInt(request.getParameter("unidade"));
String provaLiberada = request.getParameter("liberada");
PrintWriter out= response.getWriter();
JSONObject json = new JSONObject();
try {
// ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ PEGA O ULTIMO VALOR DA PROVA ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
PreparedStatement stmtVerifica = Conexao.getConnection().prepareStatement(
"SELECT * FROM prova where cod_disciplina ='"+ disciplina + "' and unidade ='"+ unidade + "' and liberada ='"+ provaLiberada + "';");
ResultSet rsVerifica = stmtVerifica.executeQuery();
while (rsVerifica.next()) {
int codigo_prova_banco = rsVerifica.getInt("cod_prova");
this.cod_prova = codigo_prova_banco;
this.trazer = true;
}
// ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ PEGA O ULTIMO VALOR DA PROVA ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
if(this.trazer == true){
// ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ TRAS AS QUESTÕES DA PROVA ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
PreparedStatement stmtPerguntas = Conexao.getConnection().prepareStatement(
"SELECT DISTINCT PERGUNTA FROM questao where cod_prova ='"+ this.cod_prova + "';");
ResultSet rsPerguntas = stmtPerguntas.executeQuery();
while (rsPerguntas.next()) {
this.perguntas.add(rsPerguntas.getString("pergunta"));
}
PreparedStatement stmtAlternativas = Conexao.getConnection().prepareStatement(
"SELECT ALTERNATIVA FROM questao where cod_prova ='"+ this.cod_prova + "';");
ResultSet rsAlternativas = stmtAlternativas.executeQuery();
while (rsAlternativas.next()) {
this.alternativa.add(rsAlternativas.getString("alternativa"));
}
// ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ TRAS AS QUESTÕES DA PROVA ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
}
json.put("perguntas", this.perguntas);
json.put("alternativas", this.alternativa);
out.print(json);
json.remove("perguntas");
json.remove("alternativas");
this.perguntas.removeAll(perguntas);
this.alternativa.removeAll(alternativa);
this.trazer = false;
out.close();
} catch (Exception e) {
// TODO: handle exception
}Eu preciso entender/ver como esta vindo este json com as perguntas e respostas, depois de pronto.
Posta o array de strings para analisarmos melhor.