praegune kellaaeg 05.08.2025 10:25:39
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
autor |
|
sakunne
HV veteran

liitunud: 15.12.2004
|
21.07.2012 15:40:38
JavaScript, stringide ühendamine |
|
|
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 |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
21.07.2012 15:58:11
|
|
|
var out_string = sting_1 + sting_2 + sting_n; |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
21.07.2012 16:37:21
|
|
|
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 |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
69 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
21.07.2012 18:23:25
|
|
|
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
21.07.2012 18:51:23
|
|
|
Sama asi ühe rea peal peaks saama nii:
javascript:
|
string.replace(/(\r\n|\n|\r)/gm, ",").replace(/\[0,/g, "["))
|
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Redikate
HV veteran

liitunud: 30.12.2005
|
22.07.2012 00:21:32
|
|
|
Tundub et reavahetus pole siis mitte \n vaid \r (või mõlemad)
mikk36 lahendus seega
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
33 |
|
tagasi üles |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
24.07.2012 08:17:15
|
|
|
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
Prooviks asja lahendada ilma jQuery'ta, kuna see ikka veel natuke segane mul
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
69 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
24.07.2012 10:30:40
|
|
|
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 |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
24.07.2012 17:43:55
|
|
|
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 |
|
 |
Timukas0
HV kasutaja

liitunud: 20.03.2007
|
24.07.2012 18:45:37
|
|
|
"Puhas" JavaScript, kuigi jQueryt ei tasu küll karta (pealegi on eelmises lahenduses seda nii vähe, et pole raske seda asendada):
javascript:
|
var text; var element; element.innerHTML = '<table>' + text.split('\r\n').map(function(line){ return '<tr>' + JSON.parse(line).map(function(cell){ return '<td>' + cell + '</td>'; }).join('') + '</tr>'; }).join('') + '</table>';
|
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
24.07.2012 22:08:08
|
|
|
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 |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
24.07.2012 22:27:05
|
|
|
Timukas0, nüüd ma kukkusin kärult maha, kuidas see nähtavaks saab ...
document.getElementBy??? ... ??? |
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
69 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
24.07.2012 22:28:23
|
|
|
sakunne, lihtsam on jQuery algtõdedest aru saada.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
24.07.2012 23:03:16
|
|
|
mikk36 kirjutas: |
sakunne, lihtsam on jQuery algtõdedest aru saada. |
Seda küll, ma tegelen sellega, a'ega Timuks0 lahendusel ka viga pole
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
69 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
24.07.2012 23:43:48
|
|
|
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:
|
// ilma esimese numbrielemendita var text1 = "[" + text.replace(/(\r\n|\n|\r)/gm, ",").replace(/\[\d*,/g, "[") + "]"; // koos esimese numbrielemendiga var text2 = "[" + text.replace(/(\r\n|\n|\r)/gm, ",") + "]"; // siin tõmbame teksti ühte muutujasse array kujule, mille seest saab siis neid vastavalt soovile väljutada var parsedText1 = JSON.parse(text1); 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 |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
25.07.2012 01:10:54
|
|
|
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 |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
25.07.2012 09:04:30
|
|
|
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 |
|
 |
Timukas0
HV kasutaja

liitunud: 20.03.2007
|
26.07.2012 00:16:54
|
|
|
Täielik töötav versioon:
javascript:
|
<div id="table"></div> <script> 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]"; var element = document.getElementById('table'); // parsitud andmed ühe arrayna var parsedText = text.split('\r\n').map(function(line){ return JSON.parse(line); }); // tabeli kuvamine element.innerHTML = '<table>' + parsedText.map(function(row){ return '<tr>' + row.map(function(cell){ return '<td>' + cell + '</td>'; }).join('') + '</tr>'; }).join('') + '</table>'; </script>
|
|
|
Kommentaarid: 3 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
3 |
|
tagasi üles |
|
 |
sakunne
HV veteran

liitunud: 15.12.2004
|
26.07.2012 12:41:02
|
|
|
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 |
|
 |
|
lisa lemmikuks |
|
|
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.
|