Printable Version of Topic
Click here to view this topic in its original format
თბილისის ფორუმი > პროგრამირება > javascript მარტივი კითხვა მაგრამ ვერ ვქენი


Posted by: ac1001 30 Oct 2020, 02:52
მოკლედ თქვენი დახმარება მჭირდება.

მაქვს ობიექტი https://selectize.github.io/selectize.js/ ამ ბიბლიოთეკის dropdown ლისტია.
მინდა ამოვიღო options-ები. select კონტროლივითაა ოღონდ ნავაროტკები აქ.

ვიღებ ასე: var myObject = $('#mydropdown')[0].selectize.options; ეს თავისი აპია.
და მიბრუნებს ამას (კონსოლში ნახეთ):

user posted image

{} ასეთ რაღაცას აბრუნებს.
აქედან მინდა ამოვიღო პირველი ციფრები რაც წერია ყველა. 1,2,3,4,5,6. ესენი არის იდები.
ვერაფრით ვერ ვქენი იქნებ დამეხმაროთ. {} ცარიელი რა არის ვერაფრით ვერ გავიგე.

ესენი ვცადე მაგრამ უშედეგოდ:

CODE

var myObject = $('#mydropdown')[0].selectize.options;
           console.log(myObject);
           for (var prop in myObject['']) {
               if (Object.prototype.hasOwnProperty.call(obj, prop)) {
                   console.log(obj, prop);
               }
           }

           for (const property in myObject['']) {
               console.log(`${property}: ${myObject[property]}`);
           }

           for (const property in myObject) {
               console.log(`${property}: ${myObject[property]}`);
           }

           var propertiesToArray = functi0n propertiesToArray(obj) {
               const isObject = val =>
                   typeof val === 'object' && !Array.isArray(val);

               const addDelimiter = (a, b) =>
                   a ? `${a}.${b}` : b;

               const paths = (obj = {}, head = '') => {
                   return Object.entries(obj)
                       .reduce((product, [key, value]) => {
                           let fullPath = addDelimiter(head, key)
                           return isObject(value) ?
                               product.concat(paths(value, fullPath))
                               : product.concat(fullPath)
                       }, []);
               }

               return paths(obj);
           }
           console.log(propertiesToArray(myObject));


პს. მასივი არაა. ობიექტია {}. ამიტომ მასივური გადარბენა არ შველის.

Posted by: iMaximuSi 30 Oct 2020, 11:12
ac1001
QUOTE
for (const property in myObject[''])

ეს რა არის? myObject['']

Posted by: ac1001 30 Oct 2020, 20:59
iMaximuSi
var myObject არის ის რაც კონსოლში ილოგება. {}

გადავწყიტე ოღონდ სხვანაირად. სადაც ივსება ეგ ლისტი იქიდან ამოვიღე ეს იდები და შევინახე და მერე ვიყენებ.
მაგრამ ასე რატო არ გამოდის ვერ გავიგე.

Posted by: Nargany 1 Nov 2020, 01:39
ac1001
CODE
for(let prop in myObject) {
   const obj = myObject[prop];
   console.log(obj.text, obj.value, obj.$order);
}

Posted by: ac1001 1 Nov 2020, 01:59
QUOTE (Nargany @ 1 Nov 2020, 01:39 )
ac1001
CODE
for(let prop in myObject) {
   const obj = myObject[prop];
   console.log(obj.text, obj.value, obj.$order);
}

საღოლ ძმაო
იმუშავა მაგ კოდმა
up.gif

Posted by: G1oba1 1 Nov 2020, 05:54
ac1001
QUOTE
{} ასეთ რაღაცას აბრუნებს.

ეგ იმას ნიშნავს რომ რეზალტი ობიექტია
1,2,4 კი პროფერთიები რმოლებიც ცალკე ობიექტებს აბრუნებენ

Posted by: argo 1 Nov 2020, 15:50
მხოლოდ key ები თუ გჭირდება ობიექტის keys მეთოდით მიიღებ სასურველ შედეგს

CODE


const keys = Object.keys(myObject) // => მასივის სახით დაგიბრუნებს key- ებს



ეხლა ჩავხედე მაგ ლიბს ჯექუერიზე არის ეგიძლია ასე ამოიღო ვალიუები

CODE

const keys = $.map($('#mydropdown option'), (option) => option.value);


or

CODE

const keys =  $('#mydropdown option').map(functi0n() { return $(this).val() }).get()


or
CODE

const keys =  $('#mydropdown').find('option').map(functi0n () { return  $(this).val() }).get()

Posted by: ac1001 1 Nov 2020, 17:04
QUOTE (argo @ 1 Nov 2020, 15:50 )
მხოლოდ key ები თუ გჭირდება ობიექტის keys მეთოდით მიიღებ სასურველ შედეგს

CODE


const keys = Object.keys(myObject) // => მასივის სახით დაგიბრუნებს key- ებს



ეხლა ჩავხედე მაგ ლიბს ჯექუერიზე არის ეგიძლია ასე ამოიღო ვალიუები

CODE

const keys = $.map($('#mydropdown option'), (option) => option.value);


or

CODE

const keys =  $('#mydropdown option').map(functi0n() { return $(this).val() }).get()


or
CODE

const keys =  $('#mydropdown').find('option').map(functi0n () { return  $(this).val() }).get()

CODE

  const keys1 = $.map($('#mydropdown option'), (option) => option.value);
           const keys2 = $('#mydropdown option').map(functi0n() { return $(this).val() }).get();
           const keys3 = $('#mydropdown').find('option').map(functi0n() { return  $(this).val() }).get();

           console.log(keys1);
           console.log(keys2);
           console.log(keys3);



ეს დაბეჭდა მაგ სამივე ფუნქციამ.
user posted image

Nargany-ის გადაწყვეტა მუშაობს.

Posted by: argo 1 Nov 2020, 18:09
ac1001

ააა უი ჩემი ბრალია ოპშენებში არ უზის რეალურად კადრს მიღმა დივ კონტენტში რენდერდება
უბრალოდ კოდში რომ ვხედავ [0].selectize.options ასეთ სოლუშენებს მეკეტება smile.gif

Posted by: river-song 30 Nov 2020, 14:01
ერთი პატარა კითხვა მაქვს მეც, ცალკე ფაილში ჰტმლ ვერ კითხულობს ჯავასკრიპტის კოდს და ერორებს აგდებს, მაგრამ ჰტმლში იკითხება ჩვეულებრივად , რისი ბრალი შეილება იყოს ?

Posted by: G1oba1 30 Nov 2020, 23:38
river-song
QUOTE
ერთი პატარა კითხვა მაქვს მეც, ცალკე ფაილში ჰტმლ ვერ კითხულობს ჯავასკრიპტის კოდს და ერორებს აგდებს, მაგრამ ჰტმლში იკითხება ჩვეულებრივად , რისი ბრალი შეილება იყოს ?

1. url სწორად გაქვს მითითებული?
2. ბრაუზერს სჭირდება სერვერი რომ აღიქვას ფაილები

Posted by: iMaximuSi 30 Nov 2020, 23:58
QUOTE
url სწორად გაქვს მითითებული?

ეს იქნება

QUOTE
ბრაუზერს სჭირდება სერვერი რომ აღიქვას ფაილები

what?

Posted by: G1oba1 1 Dec 2020, 01:48
iMaximuSi
QUOTE
what?

ჯავასკრიპტმა წესივრად რომ იმუშაოს html დოკუმენტში ერთიც და მეორეც უნდა იყოს აწეული სერვერიდან, რამე ფოლდერიდან რომ უშვებ რაღაცეები ისე არ მუშაობს ჯავასკრიპტში როგორც საჭიროა, ასე არაა?

Posted by: river-song 1 Dec 2020, 20:20
G1oba1
გავარკვიე თაიპსკრიპტის რაღაცა ვალიდაცია გავაუქმე სეთინგებში და გასწორდა

Posted by: river-song 2 Dec 2020, 22:35
CODE


document.addEventListener('DOMContentLoaded', functi0n() {
                 document.querySelector('#form').onsubmit= create;
});

functi0n create() {
     channel=document.querySelector('#channel').value;
     const request= new XMLHttpRequest();
     request.open('POST', '/create');
     request.onload =functi0n() {
         const response=request.responseText;
         document.querySelector('#create').innerHTML=response;
     };
     request.send(channel);

       
}









CODE

@app.route("/create",  methods=[ "GET", "POST"])
def create():
   if request == "GET":
        return "please submit the form for creating channel"
   channel=request.form.get("channel")
   print(channel)
   if channels.get(channel) is not None:
       return "this name is already used"
   else:
       print("works")
       global counter
       channels[channel]= counter
       counter+=1  
       print(channel)
   return channel


ერთი ამაზეც დამეხმარეთ რა, აჯაქსით მინდა რო სერვერს გავუგზავნო ინფორმაცია და რასაც ვუყურებ არ მიდის იქამდე და რას ვაკეთებ არასწორად user.gif

პ.ს მეორე არი სერვერის კოდი, ანუ მინდა რო ფორმას რო დააჭერენ ხელს ეს მივიდეს ჯავასკრიპტის ფუნქციაში , მერე ეს გადაეცეს სერვერს ის რაღაცეებს გააკეთებს და სერვერმა დაუბრუნოს ჯავასკრიპტს

ის მაინტერესებს კიდე რატო არ იცვლება უარელი როცა ღლაკზე ხდება დაჭერა, ჯავასკრიპტი ხო როუთზე გადადის მერე და ეგ უარელი რატო არ ეწერება ზემოთ, მინდა უარელი შეიცვალოს მარა იგივე გვერდძე დაეწეროს ინფორმაცია

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)