Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  JavaScript, stringide ühendamine 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:  
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 21.07.2012 15:40:38 JavaScript, stringide ühendamine vasta tsitaadiga

Seega, saan päringule vastuse kujul:
sting_1
sting_2
...
sting_n

Vaja oleks need liita üheks stringiks
sting_1,sting_2, ... sting_n

Märgiks veel, et vastuse formaati ma kuidagi muuta ei saa.
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 21.07.2012 15:58:11 vasta tsitaadiga

var out_string = sting_1 + sting_2 + sting_n;

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Redikate
HV veteran
Redikate

liitunud: 30.12.2005




sõnum 21.07.2012 16:37:21 vasta tsitaadiga

andrusny kirjutas:
var out_string = sting_1 + sting_2 + sting_n;


Oletades, et need responsist tulevad asjad ei ole javascripti muutujad, siis nii päris ei toimi vist.

See võiks toimida: http://jsfiddle.net/mFFna/
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 21.07.2012 18:00:04 vasta tsitaadiga

Redikate kirjutas:
See võiks toimida: http://jsfiddle.net/mFFna/
See toimib niipalju, et paneb komad paika, a'reavahetused jäävad ikka sisse.
Seega päris üheks stringiks ei tee.
Mul vaja kogu vastuse ulatuses mõned replaced teha, see teeb esimeses reas ja kogu lugu.
Tegemist on URA array'ga:
https://foorum.hinnavaatlus.ee/viewtopic.php?t=541484&highlight=
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 21.07.2012 18:23:25 vasta tsitaadiga

See peaks sul nüüd toimima, eeldan, et saad vastuse ajax päringust, kui mitte siis annad muutuja data väärtuseks oma sissetuleva stringi ja väljundiga teed mis vaja.
Sisendiks kasutasin su teises teemas tehtud stringi

tsitaat:
[0,"Bressenden/Victoria",51.497219,-0.141818]
[0,"Victoria Station, Bus Station Stand",51.496169,-0.143633]
[0,"Victoria Bus Station, Stand D",51.496103,-0.14401]



<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){

$.post("URAarray.html", {},
      function(data) {
      
      data = data.replace(/\n/g, ',');
      data = data.replace(/\r/g, '');
      data = data.replace(/0,/g, '');
         $('#ttt').val(data);
      });

});
</script>

<textarea id="ttt" cols="70" rows="5"></textarea>

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 21.07.2012 18:51:23 vasta tsitaadiga

Sama asi ühe rea peal peaks saama nii:
javascript:
  1. string.replace(/(\r\n|\n|\r)/gm, ",").replace(/\[0,/g, "["))
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Redikate
HV veteran
Redikate

liitunud: 30.12.2005




sõnum 22.07.2012 00:21:32 vasta tsitaadiga

sakunne kirjutas:
Redikate kirjutas:
See võiks toimida: http://jsfiddle.net/mFFna/
See toimib niipalju, et paneb komad paika, a'reavahetused jäävad ikka sisse.
Seega päris üheks stringiks ei tee.
Mul vaja kogu vastuse ulatuses mõned replaced teha, see teeb esimeses reas ja kogu lugu.
Tegemist on URA array'ga:
https://foorum.hinnavaatlus.ee/viewtopic.php?t=541484&highlight=


Tundub et reavahetus pole siis mitte \n vaid \r (või mõlemad)
mikk36 lahendus seega thumbs_up.gif
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 24.07.2012 08:17:15 vasta tsitaadiga

Jepp, JSON.stringify näitab:
"[1,\"Southend Road\",\"Woodford Green\",345,51.599753,-0.001757,\"275\",1,\"Barkingside\",\"Barkingside Tesco\",1343105106000,1343105106000]\r\n
[1,\"Southend Road\",\"Woodford Green\",345,51.599753,-0.001757,\"275\",1,\"Barkingside\",\"Barkingside Tesco\",1343106354000,1343106354000]\r\n[2,\"Southend Road\",\"Woodford Green\",345,51.599753,-0.001757,0,\"Bus routes serving this stop are subject to change during the Olympics and Paralympics games. For more information visit www.getaheadofthegames.com \",1344668400000]\r\n
[1,\"Thorpe Hall Road\",\"Woodford Green\",356,51.596218,-0.001234,\"275\",1,\"Barkingside\",\"Barkingside Tesco\",1343105040000,1343105040000]"
Seega just - \r\n
Ülesande püstitus on veidi muutunud, oleks vaja see tabelisse saada, provisin JSON.parse:
       var vastus = (JSON.parse(vastusStr));
   for (i=1; i<=10; i++) {
   busStop = vastus[i]
   }
stopStr = ("<p>"  + busStop +  "<p/>");
document.getElementById("bStop" + i ).innerHTML=stopStr;
Selliselt asi ei töötanud, ehkki tegin igasugu "string.replace" trikke, nagu eelpool soovitati icon_question.gif
Prooviks asja lahendada ilma jQuery'ta, kuna see ikka veel natuke segane mul icon_rolleyes.gif
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 24.07.2012 10:30:40 vasta tsitaadiga

sakunne, http://jsbin.com/apeyeq/3

jQuery nõudlust pole, kasutan lihtsalt mugavaks data väljapaiskamiseks.

Lisamärkus: kuna nüüd see data juba niikuinii JSON-na parse'itud on, siis teoorias pole ka vaja esimest elementi eemaldada (teine .replace()) ja saad lihtsalt vajalikud elemendid sealt array'st välja paisata.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 24.07.2012 17:43:55 vasta tsitaadiga

jaa, lahendus on hea, a'kas seda kuidagi ilma igasuguste teekideta, lihtsalt puhta JavaScript'iga teha ei saaks
_________________
Kuna ei pruugi õigel ajal foorumisse sattuda:
SMS: 5051598 [võõraid tel. ei vasta]
Email sakunne@seenior.ee
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Timukas0
HV kasutaja
Timukas0

liitunud: 20.03.2007




sõnum 24.07.2012 18:45:37 vasta tsitaadiga

"Puhas" JavaScript, kuigi jQueryt ei tasu küll karta (pealegi on eelmises lahenduses seda nii vähe, et pole raske seda asendada):
javascript:
  1. var text;
  2. var element;
  3. element.innerHTML = '<table>' + text.split('\r\n').map(function(line){
  4.     return '<tr>' + JSON.parse(line).map(function(cell){
  5.         return '<td>' + cell + '</td>';
  6.     }).join('') + '</tr>';
  7. }).join('') + '</table>';
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 24.07.2012 22:08:08 vasta tsitaadiga

sakunne kirjutas:
jaa, lahendus on hea, a'kas seda kuidagi ilma igasuguste teekideta, lihtsalt puhta JavaScript'iga teha ei saaks
Ainsad jQuery osad mu koodis on need, mis algavad $ märgiga.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 24.07.2012 22:27:05 vasta tsitaadiga

Timukas0, nüüd ma kukkusin kärult maha, kuidas see nähtavaks saab ...
document.getElementBy??? ... ??? 

icon_redface.gif
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 24.07.2012 22:28:23 vasta tsitaadiga

sakunne, lihtsam on jQuery algtõdedest aru saada.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 24.07.2012 23:03:16 vasta tsitaadiga

mikk36 kirjutas:
sakunne, lihtsam on jQuery algtõdedest aru saada.
Seda küll, ma tegelen sellega, a'ega Timuks0 lahendusel ka viga pole icon_rolleyes.gif
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 24.07.2012 23:43:48 vasta tsitaadiga

sakunne, ses mõttes et mu koodis on need jQuery osad lihtsalt näitena, et kuidas datat välja anda. See, kuidas sa ise soovid seda välja pritsida, või mida sellega edasi teha, see su oma rida.
Põhiosa koodist on see:
javascript:
  1. // ilma esimese numbrielemendita
  2. var text1 = "[" + text.replace(/(\r\n|\n|\r)/gm, ",").replace(/\[\d*,/g, "[") + "]";
  3. // koos esimese numbrielemendiga
  4. var text2 = "[" + text.replace(/(\r\n|\n|\r)/gm, ",") + "]";
  5. // siin tõmbame teksti ühte muutujasse array kujule, mille seest saab siis neid vastavalt soovile väljutada
  6. var parsedText1 = JSON.parse(text1);
  7. var parsedText2 = JSON.parse(text2);
Timuka lahendus annab iga rea eraldi array'na välja ja ei liida neid kokku ühte array'sse.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 25.07.2012 01:10:54 vasta tsitaadiga

mikk36 kirjutas:
Timuka lahendus annab iga rea eraldi array'na välja ja ei liida neid kokku ühte array'sse.
Ma pole päris kindel, kas mul ongi neid vaja üheks liita, teine asi on, et vaja teatud väljadega opereerida 'lat', 'lng' on geog koordinaadid ja nt: '1344668400000' on aeg, mis tuleb loetavasse formaati viia, seega peab nad kuidagi muutujatena kätte saama

viimati muutis sakunne 25.07.2012 09:28:29, muudetud 1 kord
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 25.07.2012 09:04:30 vasta tsitaadiga

sakunne, text1 ja text2 korraga pole vaja, vali vaid endale sobiv variant.
Ma ise eelistaks text2'e, kuna seda on vähem töödeldud ja kõik andmed alles endiselt.

Kuna sul on teada, et mida iga lahter tähendab (alati samas järjekorras on), siis saad sa valida ise vastavalt sisule (eri tulpade kogus vastavalt mõne lahtri sisule) et milliseid vaja on.
A'la normaaloludes on kuues element 275 (või lihtsalt mõni suurem number kui 0), kuid 0 puhul on tulpasid vähem.
Koordinaadid on 4. ja 5. element seal rea arrays, aja leiad vastavalt eelnevale.

Hetkel jääb mulje, et sul ei ole mure mitte jQuery'st aru saamisega, vaid Javascriptist või programmeerimisest üldiselt.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Timukas0
HV kasutaja
Timukas0

liitunud: 20.03.2007




sõnum 26.07.2012 00:16:54 vasta tsitaadiga

Täielik töötav versioon:
javascript:
  1. <div id="table"></div>
  2. <script>
  3.  var text = "[1,\"Southend Road\",\"Woodford Green\",345,51.599753,-0.001757,\"275\",1,\"Barkingside\",\"Barkingside Tesco\",1343105106000,1343105106000]\r\n[1,\"Southend Road\",\"Woodford Green\",345,51.599753,-0.001757,\"275\",1,\"Barkingside\",\"Barkingside Tesco\",1343106354000,1343106354000]\r\n[2,\"Southend Road\",\"Woodford Green\",345,51.599753,-0.001757,0,\"Bus routes serving this stop are subject to change during the Olympics and Paralympics games. For more information visit www.getaheadofthegames.com \",1344668400000]\r\n[112412,\"Thorpe Hall Road\",\"Woodford Green\",356,51.596218,-0.001234,\"275\",1,\"Barkingside\",\"Barkingside Tesco\",1343105040000,1343105040000]";
  4. var element = document.getElementById('table');
  5.  
  6. // parsitud andmed ühe arrayna
  7. var parsedText = text.split('\r\n').map(function(line){
  8.     return JSON.parse(line);
  9. });
  10.  
  11. // tabeli kuvamine
  12. element.innerHTML = '<table>' + parsedText.map(function(row){
  13.     return '<tr>' + row.map(function(cell){
  14.         return '<td>' + cell + '</td>';
  15.     }).join('') + '</tr>';
  16. }).join('') + '</table>';
  17. </script>
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 26.07.2012 12:41:02 vasta tsitaadiga

Thanks, sain juba hakkama, kuid natuke teisiti:
var element;
element = '<table border="1">' + vastusStr.split('\r\n').map(function(line){
    return '<tr>' + JSON.parse(line).map(function(cell){
        return '<td>' + cell + '</td>';
    }).join('') + '</tr>';
}).join('') + '</table>';

document.getElementById("bStop").innerHTML=element;
   }}
<body>
<div id="bStop"></div>
</body>

vastusStr tuleb AJAX'i päringust
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  JavaScript, stringide ühendamine
[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.