Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  JSON, jQuery, PHP ja sql Dünaamilisele form'ile drop down menüü lisamine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 03.01.2014 19:08:06 JSON, jQuery, PHP ja sql Dünaamilisele form'ile drop down menüü lisamine vasta tsitaadiga

Tervist, pool päeva olen netist otsinud ja proovinud igasuguseid variante, kuidas JQueryt ja JSON kasutades saaksin oma dünaamilisele formile liita drop down menüü.
Hetkel annab erroriks? kohapeal kuhu peaks tekkima menüü "[object HTMLSelectElement]" rookie nagu olen annab alertis "grupp" korraliku menüü koodi.
Võimalik, et on paremaid variante sellise asja teostamiseks, abi oleks väga teretulnud
data.php
php:
  1. <?php
  2. header('Content-type: application/json');
  3. include 'function.php';
  4. include 'sql.php';
  5. $result = mysql_query("SELECT catID FROM categories WHERE userID = '".$_SESSION['KasutajaID']."' AND subcat = '0' ")
  6. $data = array();
  7. while($row = mysql_fetch_array($result)){
  8.         $catid[] = $row['catID'];
  9. }
  10. echo json_encode(array('catid' => $catid));
  11. ?>


javascript:
  1. var d=new Date();
  2. var dat=d.getDate();
  3. var mon=d.getMonth()+1;
  4. var year=d.getFullYear();
  5. var todayDate = dat+"."+mon+"."+year;
  6. var counter = 1;
  7. var limit = 7;
  8.  $(document).ready(function(){         
  9.     $('#add_rows').click(function(){
  10.         if(counter == limit){
  11.                 alert("Maksimum " +counter+ " lisavälja on lubatud");
  12.     }
  13.         else{
  14.           $.getJSON("data.php",function(result){
  15.       $.each(result, function(j, field){
  16.           var grupp = '<select name="group" class="group">';
  17.           for (var i = 0; i < field.length; i++) {
  18.       grupp += '<option value="'+field[i]+'">'+field[i]+'</option>';
  19.           }
  20.           grupp += '</select>';
  21.     });
  22.   });
  23.                 counter += 1;
  24.     $('.container').append('<li>'+counter+'. <input class="datepicker" name="date[]" type="text" value="'+todayDate+'" /><input type="text" name="value[]" placeholder="Summa" value="" /><input type="text" name="desc[]" placeholder="Selgitus" value="" />'+grupp+'<input type="hidden" name="count[]" value="'+counter+'" /><button class="remove">Kustuta</button></li>' )
  25.         .find('.datepicker').Zebra_DatePicker()
  26.         }
  27.     });
  28.         $('.container').on('click', '.remove', function(){
  29.             $(this).closest('li').remove();
  30.                 counter -= 1;
  31. });
  32. });



edit------

Leidsin lahenduse, mis töötab
data.php
php-brief:
  1. <?php
  2. $result = mysql_query("SELECT catID, catname FROM categories WHERE userID = '".$_SESSION['KasutajaID']."' AND subcat <> '0' ORDER BY type ")
  3. $queue = array('catname' => 'Vali grupp',
  4.                            'catid' => 0);
  5. $data = array();
  6. while($row = mysql_fetch_array($result)){
  7.         $catid = $row['catID'];
  8.         $catname = $row['catname'];
  9.         $data[] = array('catname' => $catname,
  10.                                         'catid' => $catid);
  11. }
  12. array_unshift($data, $queue);
  13. echo json_encode($data);
  14. ?>


javascript:
  1. var d=new Date();
  2. var dat=d.getDate();
  3. var day = (dat < 10) ? '0' + dat : dat;
  4. var mon=d.getMonth()+1;
  5. var month = (mon < 10) ? '0' + mon : mon;
  6. var year=d.getFullYear();
  7. var todayDate = day+"."+month+"."+year;
  8. var count = 1;
  9. var limit = 7;
  10. $(document).ready(function(){
  11. $('#add_fields').click(function(){
  12.         var count = $('.container').children('li').length;
  13.         if(count == limit){
  14.                 alert("Maksimum " +count+ " lisavälja on lubatud");
  15.         }
  16.         else{
  17.                 count = count + 1;
  18.                 $.getJSON("/data.php",function(result){
  19.                         $.each(result, function(val, text){
  20.                                 $('.catid'+count).append( '<option value="'
  21.                                  + text.catid
  22.                                  + '">'
  23.                                  + text.catname
  24.                                  + '</option>' );
  25.  
  26.                                 });
  27.                         });
  28.                 $('.container').append('<li>'+count+'. <input class="datepicker" name="date[]" type="text" value="'+todayDate+'" /><input type="text" name="value[]" placeholder="Summa" value="" /><input type="text" name="desc[]" placeholder="Selgitus" value="" /><input type="hidden" name="count[]" value="'+count+'" /><select name="catid[]" class="catid'+count+'"></select><button class="remove"></button></li>').find('.datepicker').Zebra_DatePicker()
  29.         }
  30. });
  31. $('.container').on('click', '.remove', function(){
  32.         $(this).closest('li').remove();
  33.  
  34. });
  35. });

Et välju juurde lisades ei hakkaks eelmistele Select väljadele topelt optione juurde lisama, muudetakse iga uue välja lisamisega classe. Ei leidnud asjale paremat lahendust.

Ehk tuleb kellelgi abiks...
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  JSON, jQuery, PHP ja sql Dünaamilisele form'ile drop down menüü lisamine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.