|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
it looks like they do have a rest API, with a guide, so I've got my work for today!
I am checking out selenium right now. I had heard of it but never used it before. This sounds really, really cool.
edit: I am reading a lot of chatter that I may want to use Requests instead of Selenium, if it's possible, due to speed. So I might try to get the job done with requests. Selenium still looks awesome though.
|
If they have a REST API and all you want to do is check specific thing and place the bet (or not) the easiest way to go about it would be a simple CLI script using this API.
|
I was wrong.. they don't have one. Their parent company does but it's for people outside the U.S. and the U.S. website is completely different.
Looks like I have to do this the hard way 
edit: the good news is this all came to a head in a giant clusterf*ck, and is forcing me to clean up and organize my PC
I've been using ubuntu in windows, but I also had a previous installation of python in windows, as well as an installation through anaconda, and an installation through ubuntu... and i never leaned up any of it and slowly over time I have been having more and more issues and conflicts. my laziness has finally caught up with me so I am being forced to take care of all of this
|
Hey guys, i am currently stuck with my little project, maybe you can help me quickly. I am doing a small web application using jscript.
I do have a variable number of elements on my page, for simplicity, let's say i have x buttons on the page. I have a function that on DOMContentLoaded reads an array and for each entry creates a button. The buttons are saved in the global array and the all have ids button1, button2.
Now i want to have an event that recognizes that this specific button has been pressed. This looks like this for me:
document.getElementById('split'+i).addEventListener('click', function(){ausbezahlen(i)},true);
The line is in the main function called at the start when i am in the for loop going over the input just after creating the button called split, i is the looping variable. When i click the element though, the function ausbezahlen receives the last used value of i which is not used no more as the loop is then completed.
Essentially, i need a way to talk to my elements and i currently hit a road block in understanding jscript or basic logic. Anybody got some insight?
|
Fat arrow function to bind scope. document.getElementById('split'+i).addEventListener('click', ()=>{ausbezahlen(i)},true);
|
Hm, there is no change, ausbezahlen still gets 3. I am pretty sure i am doing something fundamentally wrong
|
Germany2687 Posts
A bit more code would help I think.
But maybe
document.getElementById('split'+i) .addEventListener('click', (e) => { ausbezahlen(e.currentTarget.id) },true);
?
|
Just a protip btw: In computer science there's an above average chance you're going to be working with people who doesn't know German (or whoever takes over your project once you've done your part of it). Always code in English, even for small projects, so you'll get used to it
|
Sometimes its required to code in certain language. I was told that in one of big polish companies owned by our government had (or has) a styleguide saying function/class/variables names should be in polish. It was hilarious supposedly.
I think it was PKP if anyone from Poland is intrested by i am not totally sure.
|
Hyrule19159 Posts
On January 10 2019 01:16 Broetchenholer wrote: Hey guys, i am currently stuck with my little project, maybe you can help me quickly. I am doing a small web application using jscript.
I do have a variable number of elements on my page, for simplicity, let's say i have x buttons on the page. I have a function that on DOMContentLoaded reads an array and for each entry creates a button. The buttons are saved in the global array and the all have ids button1, button2.
Now i want to have an event that recognizes that this specific button has been pressed. This looks like this for me:
document.getElementById('split'+i).addEventListener('click', function(){ausbezahlen(i)},true);
The line is in the main function called at the start when i am in the for loop going over the input just after creating the button called split, i is the looping variable. When i click the element though, the function ausbezahlen receives the last used value of i which is not used no more as the loop is then completed.
Essentially, i need a way to talk to my elements and i currently hit a road block in understanding jscript or basic logic. Anybody got some insight? It would be cleaner to bind to a class and use data attributes to get more information. It would also save a loop and a bunch of scope mess
|
On January 10 2019 01:16 Broetchenholer wrote: Hey guys, i am currently stuck with my little project, maybe you can help me quickly. I am doing a small web application using jscript.
I do have a variable number of elements on my page, for simplicity, let's say i have x buttons on the page. I have a function that on DOMContentLoaded reads an array and for each entry creates a button. The buttons are saved in the global array and the all have ids button1, button2.
Now i want to have an event that recognizes that this specific button has been pressed. This looks like this for me:
document.getElementById('split'+i).addEventListener('click', function(){ausbezahlen(i)},true);
The line is in the main function called at the start when i am in the for loop going over the input just after creating the button called split, i is the looping variable. When i click the element though, the function ausbezahlen receives the last used value of i which is not used no more as the loop is then completed.
Essentially, i need a way to talk to my elements and i currently hit a road block in understanding jscript or basic logic. Anybody got some insight? When you generate the elements do you assign them the correct IDs? In general, open it up in chrome, hit cntr-shift-i, go to console and debug this with breakpoints and console scripting.
|
On January 10 2019 04:44 Silvanel wrote: Sometimes its required to code in certain language. I was told that in one of big polish companies owned by our government had (or has) a styleguide saying function/class/variables names should be in polish. It was hilarious supposedly.
I think it was PKP if anyone from Poland is intrested by i am not totally sure.
Can't wait until they have a problem that one of their close by consultant companies can take care of, except the consultant in questions only speaks English (Well, maybe Poland doesn't have that many software developer immigrants?). It would also be hilarious trying to get any kind of help over the internet with classes, functions and variables all named in what for us might as well be gibberish 
In the last 3 years I've worked with a German guy, a Japanese guy, a Chinese, and a French who all spoke/speak rather broken Norwegian. Enough basics to be understood, but definitively not enough to do any work with.
|
Zurich15355 Posts
On January 10 2019 00:49 travis wrote:I was wrong.. they don't have one. Their parent company does but it's for people outside the U.S. and the U.S. website is completely different. Looks like I have to do this the hard way  edit: the good news is this all came to a head in a giant clusterf*ck, and is forcing me to clean up and organize my PC I've been using ubuntu in windows, but I also had a previous installation of python in windows, as well as an installation through anaconda, and an installation through ubuntu... and i never leaned up any of it and slowly over time I have been having more and more issues and conflicts. my laziness has finally caught up with me so I am being forced to take care of all of this Having about 35 Python installations and environments in various stages of disintegration is basically a right of passage to any serious work with Python https://xkcd.com/1987/
|
Was gonna link that earlier but figured linking xkcd in a programming thread might be superfluous :D
But yeh, I think I gain a new python install about once a year and pretty much only lose them when hard drives die...
|
That xkcd actually just gave me PTSD
|
Isn't that why we use pyenv and docker containers?
|
edit: fml companies are dicks oh well selenium is cool
|
On January 10 2019 05:06 Acrofales wrote:Show nested quote +On January 10 2019 01:16 Broetchenholer wrote: Hey guys, i am currently stuck with my little project, maybe you can help me quickly. I am doing a small web application using jscript.
I do have a variable number of elements on my page, for simplicity, let's say i have x buttons on the page. I have a function that on DOMContentLoaded reads an array and for each entry creates a button. The buttons are saved in the global array and the all have ids button1, button2.
Now i want to have an event that recognizes that this specific button has been pressed. This looks like this for me:
document.getElementById('split'+i).addEventListener('click', function(){ausbezahlen(i)},true);
The line is in the main function called at the start when i am in the for loop going over the input just after creating the button called split, i is the looping variable. When i click the element though, the function ausbezahlen receives the last used value of i which is not used no more as the loop is then completed.
Essentially, i need a way to talk to my elements and i currently hit a road block in understanding jscript or basic logic. Anybody got some insight? When you generate the elements do you assign them the correct IDs? In general, open it up in chrome, hit cntr-shift-i, go to console and debug this with breakpoints and console scripting.
Allright, so this is what i am doing, condensed to only the element in question. Around that there is a lot of stuff and my main problem seems to be scope.
/* <!doctype html> <html lang="de"> <head> <meta charset="utf-8"> </head> <body> <header> </header> <script> 'use strict'; var companies = document.querySelector('header');
var comArray = [ { Name: "Bayern", Kontostand: 0 }, { Name: "Baden", Kontostand: 0 }, { Name: "Oldenburg", Kontostand: 0 } ];
function getInformation(){ //Gesellschaftsinformationen einholen //global definiert
var zieleArray = ['Bank','Vorpreussen 1','Vorpreussen 2','Vorpreussen 3','Vorpreussen 4','Vorpreussen 5','Vorpreussen 6','Bayern','Sachsen','Baden','Hessen','Württemberg','Mecklenburg','Oldenburg'];
for (var i = 0;i<comArray.length; i++) { var myh3 = document.createElement('h3'); myh3.textContent = comArray[i]['Name']; companies.appendChild(myh3);
//GewinneRadio comArray[i][6] + [7] var input = document.createElement('input'); input.type = 'radio'; input.checked = true; comArray[i][6] = input; comArray[i][6].id = 'split'+i; comArray[i][6].name = 'group-a'+ i; companies.appendChild(comArray[i][6]);
input = document.createElement('input'); input.type = 'radio'; comArray[i][7] = input; comArray[i][7].id = 'retain'+i; comArray[i][7].name = 'group-a'+ i; companies.appendChild(comArray[i][7]);
//GewinneButton comArray[i][8] var button = document.createElement('button'); button.textContent = 'Ausbezahlen'; comArray[i][8] = button; comArray[i][8].id = 'gains'+i; companies.appendChild(comArray[i][8]);
function ausbezahlen (test) { console.log(test); if (document.getElementById('split'+test).checked == true){ document.getElementById('gains'+test).textContent = 'Ausbezahlen'; } } function einbehalten (test) { console.log(test); if (document.getElementById('retain'+test).checked == true){ document.getElementById('gains'+test).textContent = 'Einbehalten'; } } console.log(i); document.getElementById('split'+i).addEventListener('click', ()=>{ausbezahlen(i)},true); document.getElementById('retain'+i).addEventListener('click', ()=>{einbehalten(i)},true);
} }
document.addEventListener('DOMContentLoaded',getInformation(),true);
</script> </body> </html>*/
First, it's super messy, i had to learn jscript and html from selfhtml in 3 days, simply jumping over everything copying in parts that sounded like they would work and then starting to fiddle until stuff clicked together somewhat. And yes, mixing german with english is completely stupid as well, thanks for the note. So, what i do is execute getInformation() on DOMContentLoaded, which should then populate the variable part of my page. Most of that is deleted for simplification. Next step was to actually get events onto the forms to transmit content to the server mostly, i started with the simple task of changing the text on my button depending on the selected radio button. First, i thought i would need an array to identify my elements, so i put everything into comArray. Trying to access that did not work though, so i started to give everything ids and call them by that. This worked as long as i would hardcode an event listener for a specific element. Then i tried this, Upon creating the element in the for-loop, i am adding a listener and calling a function in that listener. That function hands over the variable part of the id and then amends that once it is clicked. The variable is passed on when the function is called though and not when the event listener is created, which results in 3 being passed and therefore nothing works.
How do i achieve this?
|
On January 10 2019 02:35 shz wrote:A bit more code would help I think. But maybe document.getElementById('split'+i) .addEventListener('click', (e) => { ausbezahlen(e.currentTarget.id) },true);
?
Yay, this does work, thanks a lot. I feel like this is a workaround for my very messy implementation, though, is there a better way to handle that?
|
On January 10 2019 10:06 Broetchenholer wrote: I feel like this is a workaround for my very messy implementation, though, is there a better way to handle that?
First of all, I would avoid stuff like arr[i][6]... Where does this 6 come from? What does it mean? How can you be sure that element i of this array is itself an array?
Magic numbers and too many assumptions are a bad thing. Also, I don't think that defining functions inside the for loop is a great idea (but it's JS, so it might be there).
When beginning any programming I strongly suggest using a linter. Those can teach you some good practices and make your code cleaner.
Here's an example for JS: https://www.jslint.com/
On January 10 2019 04:44 Silvanel wrote: Sometimes its required to code in certain language. I was told that in one of big polish companies owned by our government had (or has) a styleguide saying function/class/variables names should be in polish. It was hilarious supposedly.
I think it was PKP if anyone from Poland is intrested by i am not totally sure.
There's plenty of companies in Poland that have at least some part of their code base in Polish. A lot of people who don't know enough English.
The worst of all are companies which mix and match stuff. I've seen function names like "get_rand_kwadrat" (en: "get_rand_square"). It's truly exasperating.
|
|
|
|
|
|