Получить значение String из ввода, скрытого с помощью JQuery и AIR - PullRequest
0 голосов
/ 11 ноября 2010

у меня проблема с моим кодом ... когда я получаю значение вопроса [i] .. например: если у меня есть вопрос, который был взят из базы данных и показан в строке таблицы как "Как тебя зовут" ... тогдая вставляю скрытый тип ...

когда я отправляю эту форму .. я перезваниваю вопрос .. он должен «Как тебя зовут», но я получил только первую строку, это «Что» .. могкто-нибудь исправит мой код .. или исправит ошибку

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Untitled Document</title>
 </head>
 <body>
  <form name="savequestion" action="#" method="post">
   <div id="readDatabase">
    <table id="questionlist"></table>
   </div>
  </form>


  <script type="text/javascript" src="js/jquery.js"></script>
   <script src="js/AIRAliases.js" />
   <script src="js/database.js" />
  <script type="text/javascript">

   $(document).ready(function(){
    db = SetupDB();
    read_questions();
    $('#save').click(function(){
     var count_data=$("#countof_record").val();
     for (i = 0; i < count_data; i++) {
      //get value of question+i
      **alert($("#question"+i).val());**
//------------------------------i will get question here, but i only get : first string of question----------------------------
     }

    });
   });

   function read_questions(){
    dbQuery = new air.SQLStatement(); 
    dbQuery.sqlConnection = db;  
    dbQuery.text = "SELECT * FROM t_Questions";  
    try {
     dbQuery.execute();
    } 
    catch (e) {
     alert(e.message); 
    }
    results = dbQuery.getResult();
    //$("#questionlist tbody").empty();
    for (i = 0; i < results.data.length; i++) {  
      row = results.data[i];  
      var questions=row.ContentQuestion;
      alert(questions);
     $("#questionlist").append("<tr id=rowQuestion><td>"+(i+1)+"</td><td><input type=hidden name=question"+i+" id=question"+i+" value="+questions+" size=255>"+row.ContentQuestion+"</td><td><select name=answer"+i+" id=answer"+i+"><option name=answerA value=A selected>"+row.OptionAQuestion+"</option><option name=answerB value=B>"+row.OptionBQuestion+"</option><option name=answerC value=C>"+row.OptionCQuestion+"</option><option name=answerD value=D>"+row.OptionDQuestion+"</option></select></td></tr>");  
    }  
    $("#questionlist > tbody:last").append("<tr><td><input type=hidden name=countof_record id=countof_record value="+results.data.length+"><input type=submit name=submit value=Save your answer id=save></td></tr>");
   }  
  </script>
 </body>
</html>

1 Ответ

0 голосов
/ 11 ноября 2010

Вам не хватает кавычек по всем вашим атрибутам, и вы снова используете идентификатор rowQuestion, чтобы исправить это. Всегда заключите ваши атрибуты в кавычки.


В качестве альтернативы вашему текущему подходу проверьте шаблоны jQuery , шаблон для вашего кода будет выглядеть так(Надеюсь, вы согласитесь, гораздо проще в обслуживании):

<script id="rowTmpl" type="text/x-jquery-tmpl">
  {{each items}}
  <tr class="rowQuestion">
    <td>${$index+1}</td>
    <td><input type="hidden" name="question${$index}" id="question${$index}" value="${$value.ContentQuestion}">${$value.ContentQuestion}</td>
    <td>
      <select name="answer${$index}" id="answer${$index}">
        <option name="answerA" value="A">${$value.OptionAQuestion}</option>
        <option name="answerB" value="B">${$value.OptionBQuestion}</option>
        <option name="answerC" value="C">${$value.OptionCQuestion}</option>
        <option name="answerD" value="D">${$value.OptionDQuestion}</option>
      </select>
    </td>
  </tr
  {{/each}}>
  <tr>
    <td>
      <input type="hidden" name="countof_record" id="countof_record" value="${items.length}">
      <input type="submit" name="submit" value="Save your answer" id="save">
    </td>
  </tr>
</script>

Чтобы использовать его, вы должны заменить это:

for (i = 0; i < results.data.length; i++) {  
  row = results.data[i];  
  var questions=row.ContentQuestion;
  alert(questions);
  $("#questionlist").append("<tr id=rowQuestion><td>"+(i+1)+"</td><td><input type=hidden name=question"+i+" id=question"+i+" value="+questions+" size=255>"+row.ContentQuestion+"</td><td><select name=answer"+i+" id=answer"+i+"><option name=answerA value=A selected>"+row.OptionAQuestion+"</option><option name=answerB value=B>"+row.OptionBQuestion+"</option><option name=answerC value=C>"+row.OptionCQuestion+"</option><option name=answerD value=D>"+row.OptionDQuestion+"</option></select></td></tr>");  
}  
$("#questionlist > tbody:last").append("<tr><td><input type=hidden name=countof_record id=countof_record value="+results.data.length+"><input type=submit name=submit value=Save your answer id=save></td></tr>");

на это:

$("#rowTmpl").tmpl({items: results.data}).appendTo("#questionlist");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...