Quantcast
Channel: Programmering och digitalt skapande | SweClockers
Viewing all 5998 articles
Browse latest View live

React.js oändlig loop när jag försöker använda setState och handleImage körs 4 ggr.

$
0
0

Hej!

Jag har ett formulär där jag vill hämta en bild och sedan ladda ner den i en databas ihop med övriga data och samtidigt spara filen i en viss katalog på hårddisken.

Men när jag hämtar bilden så körs handleImage() 4 gånger och vid sista gången den körs så försvinner det data jag har hämtat och ersätts med endast imagePreviewUrl.

Så här ser console.logen ut när jag hämtar en bild.

Sell.js 67 {picture: "C:\fakepath\klubba.jpg", file: "", imagePreviewUrl: ""}
Sell.js:74 C:\fakepath\klubba.jpg
Sell.js:67
Sell.js:74 undefined
Sell.js:67 {picture: "C:\fakepath\klubba.jpg", file: File(2991), imagePreviewUrl: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//Z"}
Sell.js:74 C:\fakepath\klubba.jpg
Sell.js:67 data:image/jpeg;base64,/9j/4AAQSkZfWNr2P1Wd+aTVNP+7UX8zbgVvUy+K3ljFZdpvJcslx4LLKcZfi4eKX9qV38zKgFbd8pAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//Z
Sell.js:74 undefined

Jag skulle även vilja använda mig av picture: "C:\fakepath\klubba.jpg" men när jag använder mig av setState så blir det en evighetsloop.

Vad har jag gjort för fel??

import React, { Component } from 'react';
import Ocean from './../images/ocean.jpg';
//import ReactFileReader from 'react-file-reader';
import Price from './Price';
import UploadImage from './UploadImage';
import './Sell.css';

class Sell extends Component {
constructor(props) {
super(props);
this.state = {
sport: "",
title: "",
text: "",
price: "",
picture: "",
pictureName: "",
name: "",
email: "",
phone: "",
municipality: "",
county: "",
value: "",

};

this.handleSubmit = this.handleSubmit.bind(this);
this.handleSport = this.handleSport.bind(this);
this.handleCounty = this.handleCounty.bind(this);
this.handleChange = this.handleChange.bind(this);
this.handleImage = this.handleImage.bind(this);
}

update() {

this.setState({
sport: this.refs.sport.value,
title: this.refs.title.value,
text: this.refs.text.value,
price: this.refs.price.value,
picture: this.refs.picture.value,
name: this.refs.name.value,
email: this.refs.email.value,
phone: this.refs.phone.value,
municipality: this.refs.municipality.value,
county: this.refs.county.value
})

}

handleSport(event) {
this.setState({sport: event.target.value});
}

handleCounty(event) {
this.setState({county: event.target.value});
}

handleImage(picture) {

console.log(picture);

const data = picture;

let key = 'picture';
console.log(picture[key]);
let image = picture[key];

this.setState({picture: image});
}

handleSubmit(event) {
event.preventDefault();

const image = this.refs.picture.value.split('C:\\fakepath\\')[1];

const data = {
sport: this.refs.sport.value,
title: this.refs.title.value,
text: this.refs.text.value,
price: this.refs.price.value,
picture: image,
//picture: event.target.result,
name: this.refs.name.value,
email: this.refs.email.value,
phone: this.refs.phone.value,
municipality: this.refs.municipality.value,
county: this.refs.county.value
}

console.log(data);

fetch('http://localhost/reusesport/src/api/newadvertisment.php', {
method: 'POST',
body: JSON.stringify(data)
})
.then(resp => resp.text())
.then(data => console.log(data))
.then(resp=>console.warn("result", resp))

}

handleChange(event) {
console.log('handleChange');
}
onSubmit = () => {

}

render() {

return (
<div className="Sell">
<div className="Sell-picture">
<div className="Sell-pictureimg"><img src={Ocean} alt="Reusesports" /></div>
<div className="Sell-Box">
<div className="Sell-innerbox">
<h1 className="Sell-title">Har du begagnad sportutrustning som inte används?</h1>
<h2 className="Sell-intro">Sälj den hos oss, det finns många som gärna vill köpa dem.</h2>

<form className="Sell-form" onSubmit={this.handleSubmit}>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Välj sport</div>
<select className="Sell- Sell-input" id="sport" name="sport" ref="sport" onChange={this.handleChange} onChange={this.handleSport} value={this.state.sport} required>
<option value="Badminton">Badminton</option>
<option value="Bandy">Bandy</option>
<option value="Basket">Basket</option>
<option value="Boxning">Boxning</option>
<option value="Brottning">Brottning</option>
<option value="Bågskytte">Bågskytte</option>
<option value="Cykelsport">Cykelsport</option>
<option value="Flygsport">Flygsport</option>
<option value="Fotboll">Fotboll</option>
<option value="Friidrott">Friidrott</option>
<option value="Dykning">Dykning</option>
<option value="Fäktning">Fäktning</option>
<option value="Golf">Golf</option>
<option value="Gymnastik">Gymnastik</option>
<option value="Handboll">Handboll</option>
<option value="Ishockey">Ishockey</option>
<option value="Innebandy">Innebandy</option>
<option value="Lacrosse">Lacrosse</option>
<option value="Kampsport">Kampsport</option>
<option value="Kanot">Kanot</option>
<option value="Klättring">Klättring</option>
<option value="Konståkning">Konståkning</option>
<option value="Motorsport">Motorsport</option>
<option value="Tennis">Tennis</option>
<option value="Ridsport">Ridport</option>
<option value="Rugby">Rugby</option>
<option value="Segling">Segling</option>
<option value="Skidsport">Skidsport</option>
<option value="Vattenskidor">Vattenskidor</option>
<option value="Vindsurfing">Vindsurfing</option>
<option value="Övriga">Övriga</option>
</select>
</div>

<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Ange titel</div>
<input className="Sell-input" id="title" name="title" maxLength="30" type="text" ref="title" onChange={this.handleChange} onChange={this.update.bind(this)} required />
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Ange en bra beskrivning av produkten</div>
<textarea className="Sell-input Sell-text" rows="4" cols="50" maxLength="500" name="text" id="text" type="text" ref="text" onChange={this.handleChange} onChange={this.update.bind(this)} required />
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title">Ange pris</div>
<input className="Sell-price Sell-input" id="price" name="price" type="text" ref="price" onChange={this.handleChange} onChange={this.update.bind(this)} required/>
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Ladda upp bilder</div>+
<UploadImage picture={this.handleImage} ref="picture" id="picture" name="picture" onChange={this.update.bind(this)} />
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title">Ange ditt namn</div>
<input className="Sell-name Sell-input" id="name" name="name" type="text" ref="name" onChange={this.handleChange} onChange={this.update.bind(this)} required/>
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Ange din mailadress</div>
<input className="Sell-mail Sell-input" id="email" name="email" type="text" ref="email" onChange={this.handleChange} onChange={this.update.bind(this)} required/>
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Ange det telefonnummer du vill köparna ska nå dig på</div>
<input className="Sell-mail Sell-input" id="phone" name="phone" type="text" ref="phone" onChange={this.handleChange} onChange={this.update.bind(this)} required/>
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Ange kommun</div>
<input className="Sell-municipality Sell-input" id="municipality" name="municipality" type="text" ref="municipality" onChange={this.handleChange} onChange={this.update.bind(this)} required/>
</div>
<div className="Sell-innerBox">
<div className="Sell-sport Sell-input_title ">Vilket län bor du i</div>
<select className="Sell-county Sell-input" id="county" name="county" ref="county" onChange={this.handleChange} onChange={this.handleCounty} value={this.state.county}> <option value="blekinge">Blekinge</option>
<option value="Dalarna">Dalarna</option>
<option value="Gotland">Gotland</option>
<option value="Gävleborg">Gävleborg</option>
<option value="Halland">Halland</option>
<option value="Jämtland">Jämtland</option>
<option value="Jonkoping">Jönköping</option>
<option value="Kalmar">Kalmar</option>
<option value="Kronoberg">Kronoberg</option> <option value="norrbotten">Norrbotten</option>
<option value="Skåne">Skåne</option>
<option value="Stockholm">Stockholm</option>
<option value="Södermanland">Södermanland</option>
<option value="Uppsala">Uppsala</option>
<option value="Värmland">Värmland</option>
<option value="Västerbotten">Västerbotten</option>
<option value="Västernorrland">Västernorrland</option> <option value="vastermanland">Västermanland</option>
<option value="Västragötaland">Västra Götaland</option>
<option value="Örebro">Örebro</option>
<option value="Östergötland">Östergötland</option>
</select>
</div>
<div className="Sell-innerBox">
<input className="Sell-submit" id="sub" type="submit" value="Lägg upp annonsen" />
</div>
</form>
</div>
</div>
</div>

<Price price={this.state.price}/>
</div>

);
}
}

export default Sell;

import React, { Component } from 'react';
import "./UploadImage.css";

class UploadImage extends Component {

constructor(props) {
super(props);
this.state = {
picture: '',
file: '',
imagePreviewUrl: ''
};

this.loadPicture = this.loadPicture.bind(this);
}

loadPicture(e) {
e.preventDefault();

const {file} = this.state;
const {onSubmit} = this.props;

onSubmit(file);
}

handleImageChange(e) {
e.preventDefault();

let reader = new FileReader();
let file = e.target.files[0];

reader.onloadend = () => {
this.setState({
file: file,
imagePreviewUrl: reader.result
});
}

this.setState({picture: this.refs.picture.value});

reader.readAsDataURL(file)
}

render() {

let {imagePreviewUrl} = this.state;

this.props.picture(this.state);
let $imagePreview = null;
if (imagePreviewUrl) {
$imagePreview = (<img src={imagePreviewUrl} />);
} else {
$imagePreview = (<div className="previewText">Please select an Image for Preview</div>);
}

return (
<div>
<form onSubmit={this.loadPicture}>
<input className="fileInput" type="file" id="picture" name="picture" ref="picture" value={this.state.picture} picture={this.props.picture(this.state.imagePreviewUrl)} multiple accept=".jpg, .jpeg, .png" onChange={(e)=>this.handleImageChange(e)} required/>
</form>
<div className="imgPreview">
{$imagePreview}
</div>
</div>
)
}
}

export default UploadImage;


Får fel färger på mina components i React när jag lägger till dem i en array

$
0
0

Jag försöker göra så att rätt angivet tal från min multiplikation blir skrivet i grön text och fel svar blir skrivet i röd text men jag har ett problem.

Första svaret blir alltid i rött och andra svaret blir färgen från första frågan. Så om jag svarat rätt på första frågan så blir andra frågans text grön osv. Det känns som att min state inte hinner uppdateras innan komponenten läggs i min array.

Sen undrar jag hur jag ska kunna lägga min array som en const istället i programmet så att jag kan skicka in alla svar där, och i slutet av programmet lägga upp hela arrayen i staten.

Tack på förhand.

import React, { Component } from 'react';
import { Container, Row, Button, Col, ProgressBar, Modal } from 'react-bootstrap';
import './Multiplication.css'

export default class Multiplication extends Component {

state = {
numberOne: null,
numberTwo: null,
numberToCheck: null,
correct: null,
correctAnswer: 0,
wrongAnswer: 0,
answered: 0,
modalShow: false,
checkIt: true,
start: false,
answers: []
}

generateNumbers = () => {
const one = Math.floor(Math.random() * 13);
const two = Math.floor(Math.random() * 13);

this.setState({numberOne: one, numberTwo: two, start: true, checkIt: false });
}

checkAnswer = () => {

const numberToCheck = parseInt(document.getElementById("answer").value, 10);
const { numberOne, numberTwo} = this.state;
const isCorrect = (numberOne * numberTwo) === numberToCheck;

isCorrect ? this.setState({ correctAnswer: this.state.correctAnswer + 1, correct: true }) : this.setState({ wrongAnswer: this.state.wrongAnswer + 1, correct: false });

this.state.answers.push(<Answer isCorrectAnswer={ this.state.correct } numberOne={ this.state.numberOne } numberTwo={ this.state.numberTwo }/>);

this.setState({ answers: answers });

document.getElementById("answer").value = "";
document.getElementById("checker").innerHTML = isCorrect;

this.setState({ answered: this.state.answered + 1 });

if (this.state.answered === 9) {
this.setState({modalShow: true });
}

this.generateNumbers();
}

render() {

let modalClose = () =>
this.setState({ modalShow: false, correctAnswer: 0, wrongAnswer: 0, numberOne: null, numberTwo: null, answered: null, start: false, checkIt: true, answers: []});

return (
<Container>
<Col xs={12}>
<Row className="justify-content-center">
<Button
id="start"
disabled={ this.state.start }
onClick={ this.generateNumbers }>Start</Button>
</Row>
</Col>
<Row className="justify-content-center">
<h1 id="numberOne">{ this.state.numberOne }</h1>
<h1>&nbsp;x&nbsp;</h1>
<h1 id="numberTwo">{ this.state.numberTwo }</h1>
</Row>
<Row className="justify-content-center">
<input id="answer" type="number" />
</Row>
<Row className="justify-content-center">
<Button
id="check"
disabled={ this.state.checkIt }
onClick={ this.checkAnswer }>Check</Button>
</Row>
<Row className="justify-content-center">
<p>{ this.state.wrongOrRight }</p>
</Row>
<Row className="justify-content-center m-2">
<ProgressBar max="10">
<ProgressBar max="10" striped variant="success" animated now={ this.state.correctAnswer } key={1} />
<ProgressBar max="10" striped variant="danger" animated now={ this.state.wrongAnswer } key={2} />
</ProgressBar>
</Row>
<Row className="justify-content-center">
<p id="checker"></p>
</Row>
<Modal
size="sm"
show={ this.state.modalShow }
onHide={ modalClose }
>
<Modal.Header closeButton>
<Modal.Title>
Your score
</Modal.Title>
</Modal.Header>
<Modal.Body>
<p>Correct Answers: { this.state.correctAnswer }</p>
<p>Wrong Answers: { this.state.wrongAnswer }</p>
<ul>
{ this.state.answers.map( (tag, index) => <li key={index}>{tag}</li>)}
</ul>
</Modal.Body>
</Modal>
</Container>

);
}
}

const Answer = props => ( <div style={{color: `${props.isCorrectAnswer ? 'green' : 'red'}`}}>{props.numberOne} x {props.numberTwo} = {props.numberOne * props.numberTwo}</div>);

Fel: JavaFX-exekveringskomponenter saknas, och de krävs för att kunna köra den här applikationen

$
0
0

Hej!

Jag tänkte dra igång ett litet JavaFX projekt för att skapa en applikation i Java som har grafiskt stöd i JavaFX.

Det jag har installerat är följande:
* OpenJDK 11 (kompilatorn)
* Scenebuilder 11 (GUI verktyg)
* Eclipse 2019-03 (IDE)
* Maven (Java pakethanteringssystem)

Men ändå får jag detta felmeddelande. Notera att texten är röd i min promt. Inte all text, men text som markeras med Fel: är det.

Fel: JavaFX-exekveringskomponenter saknas, och de krävs för att kunna köra den här applikationen

När jag kör denna klass

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class Main extends Application {

/*
* This method launch the JavaFX
*/
public static void main(String[] args) {
launch(args);
}

/*
* This load up the first stage
*/
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("/JAdaptiveMPC/src/main/resources/se/controller/gui.fxml"));
AnchorPane layout = loader.load();

// Show the scene containing the root layout.
Scene scene = new Scene(layout);
primaryStage.setScene(scene);
primaryStage.show();

}

}

Så vad kan vara fel?
Maven har ju sett till så jag har stöd för JavaFX.

Här är min pom.xml fil från Maven

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Control</groupId>
<artifactId>JAdaptiveMPC</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx</artifactId>
<version>13-ea+5</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>13-ea+5</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>13-ea+5</version>
</dependency>
</dependencies>
</project>

Hjälp med kod. Felsökning och kvalitetssäkring

$
0
0

Hej!

Jag läser just nu en onlinekurs i programmering 1 och är på min allra sista uppgift som ska lämnas in imorgon innan jag ska göra min slutliga muntliga examination. Den handlar bland annat om felsökning och kvalitetssäkring. Jag har redan debuggat koden och inte hittat något fel. Däremot så har jag hittat ett fel på egen hand när jag provade koden.

Meningen är att man ska kunna lägga ner 24 flaskor i backen, men jag kan inte för mitt liv se vart jag har gjort fel. Då jag ska lägga in den 24:e flaskan så får jag upp ett meddelande där det står att det inte får plats med mer flaskor i backen.. Däremot om jag lägger in 23 flaskor så står det att jag har 1 plats kvar.

Såhär ser min kod ut:

namespace läskback
{
class Sodacrate
{
// Spara våra valda flaskor
private string[] flaskor = new string[24];

// Antalet flaskor
private int antal_flaskor = 0;

// Summa av kostand för alla flaskor, räknas ut med calc_total funktionen
public int sum = 0;

public void Run()
{
// Vårt första meny val
int meny = 0;

// Köra meny tills val 4 = avsluta väljs
do
{
Console.WriteLine("");
Console.WriteLine("Välj ett alternativ");
Console.WriteLine("1. Lägg till en dryck");
Console.WriteLine("2. Visa innehåll");
Console.WriteLine("3. Beräkna värde");
Console.WriteLine("4. Avsluta program");

// Läs vår sträng till en integer
meny = int.Parse(Console.ReadLine());

switch (meny)
{
// Om vi ska lägga till en dryck
case 1:
add_soda();
break;

// Om vi ska skriva ut innehåll
case 2:
print_crate();
break;

// Om vi ska räkna ut värdet
case 3:
sum = calc_total();
Console.WriteLine("Totalt värde: {0} kr", sum);
break;

// Om avsluta program väljs
case 4:
Console.WriteLine("Programmet avslutas!");
break;

// Om inget av valen matchar
default:
Console.WriteLine("Felaktig inmatning");
break;
}
} while (meny != 4); // Börja om menyn om valet inte är 4
}

// För att lägga till en dryck
public void add_soda()
{
// Vi kan inte lägga till om den är full
if (antal_flaskor == 24)
{
Console.WriteLine("Backen är full, du kan inte lägga till flera flaskor!");
return;
}

Console.WriteLine("Vilken dryck vill du lägga till i backen?: ");
Console.WriteLine("1. Coca Cola 5 kr");
Console.WriteLine("2. Fanta 5 kr");
Console.WriteLine("3. Julmust 5 kr");
Console.WriteLine("4. Lättöl 5 kr");
Console.WriteLine("5. Ramlösa 5 kr");

// Läs in val av dryck och gör strängen till en integer
int val = int.Parse(Console.ReadLine());

// Namnet på den flaska som väljs
string flaska = "";

// Om menyn ska visas eller inte
bool visa_meny = true;

do
{
switch (val)
{
// Om vi ska lägga till en coca cola
case 1:
flaska = "Coca Cola";
Console.WriteLine("Du valde att lägga till Coca Cola");
visa_meny = false;
break;

// Om vi ska lägga till en fanta
case 2:
flaska = "Fanta";
Console.WriteLine("Du valde att lägga till Fanta");
visa_meny = false;
break;

// Om vi ska lägga till en julmust
case 3:
flaska = "Julmust";
Console.WriteLine("Du valde att lägga till Julmust");
visa_meny = false;
break;

// Om vi ska lägga till en lättöl
case 4:
flaska = "Lättöl";
Console.WriteLine("Du valde att lägga till Lättöl");
visa_meny = false;
break;

// Om vi ska lägga till en ramlösa
case 5:
flaska = "Ramlösa";
Console.WriteLine("Du valde att lägga till Ramlösa");
visa_meny = false;
break;

// Om en ogiltig dryck väljs så vill vi visa menyn igen
default:
flaska = "";
Console.WriteLine("Felaktig inmatning, mata in ett tal mellan 1-5");
visa_meny = true;
break;
}
} while (visa_meny); // Visa menyn sålänge visa_meny är sant

Console.Write("Hur många {0} vill du lägga till: ", flaska);

// Läs in hur många av drycken som ska läggas till, gör om sträng till integer.
int antal = int.Parse(Console.ReadLine());

// Kolla så vi har plats för drycken i vår back
if (antal_flaskor + antal < 24)
{
for (int i = 0; i < antal; i++)
{
flaskor[antal_flaskor] = flaska;
antal_flaskor++;
}

// Räkna ut antalet platser kvar så vi kan visa det
int kvar = flaskor.Length - antal_flaskor;

Console.WriteLine("Du valde att lägga till {0} styck {1}", antal, flaska);
Console.WriteLine("{0} platser kvar i läskbacken", kvar);
}
else
{
Console.WriteLine("Det finns inte plats för att lägga till {0} styck {1}, det finns bara {2} platser kvar. Försök igen ", antal, flaska, flaskor.Length - antal_flaskor);
}
}

public void print_crate()
{
// Gå igenom alla flaskor, om platsen är fylld skriv ut drycken
// annars skriv bara ut tom plats.
foreach (var dryck in flaskor)
{
if (dryck != null)
Console.WriteLine(dryck);
else
Console.WriteLine("Tom plats");
}
}

// Räkna ut totala värdet på backen
private int calc_total()
{
int total = 0;

foreach (var dryck in flaskor)
{
// Kolla så att platsen inte är tom
if (dryck != null)
total += 5; // Varje dryck kostar 5 kr så vi behöver inte kolla vad det är för dryck
}
return total; // Returnera totalen
}
}

class Program
{
public static void Main(string[] args)
{
// Kör vårt program
Console.WriteLine("Välkommen till läskbacken!");

// Skapa ett Sodacrate objekt
var sodacrate = new Sodacrate();
sodacrate.Run(); // Kör vår run funktion för att börja

Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}

Tack på förhand för all hjälp!

Tråden där vi länkar till vår Github profil

$
0
0

Har inte sökt, men tror inte det finns en samlingstråd där vi postar länk till vår Github profil.
Så här är en sådan tråd.

Länk till min Github profil: https://github.com/Knivstakocken

Namnet Knivstakocken fick jag på mitt förra jobb av en kollega. Var lite på kul då jag oftast postade bilder
på maten jag tillagade. Tog vara på namnet och idag handlar det inte om mat. Utan mer om att jag kokar ihop IT-lösningar.

Någon som vill bygga ett Filemaker Pro system till vårt företag?

$
0
0

Hej,

Jag sköter faktureringen för ett flertal verksamheter inom fordonsverkstad med väldigt bred kundkrets som består av företag, främst bilhandlare. När vi fakturerar dessa kunder så skriver vi in vartenda individuellt registreringsnummer som underlag. I dagsläget skriver vi ner registreringsnummer på inkomna fordon på papper som vi sedan läser av och för in i vårt affärssystem. Vi vill skrota vårt system med papper helt. Vi vill kunna ha en exempelvis iPad på plats med en filemaker app, där man helt enkelt klickar sig fram i en meny.

Ett exempel är att appen visar en ”Hem” meny med alternativen att registrera ett fordon, först ska man få alternativet att välja vilken kund bilen kommer ifrån och därefter mata in registreringsnummer och eventuell behandling/tillägg/kommentar. Vi vill kunna exportera uppgifterna till dator med klockslag på varje registrering & alla valda uppgifter. Hur exporten kommer, alltså i PDF/Excel har ingen betydelse.

Jag har försökt mig på att skapa ett program och har en "prototyp" att visa men den fungerar inte för fem öre i praktiken utan den visar mer bara vad jag vill ha. Om det finns någon kompetent person som är kapabel till att bygga ett sådant system så får ni gärna höra av Er.

Såklart sker detta mot en ersättning som vi båda kommer överens om i förhand.

Tacksam för svar

Hjälp med REST API i PHP med C#

$
0
0

Har försökt sätta upp ett REST API för första gången på min webserver och har fått det att fungera när man testar det med ett program som heter POSTMAN. Datan skickas till servern och servern skickar tillbaka data till POSTMAN som läser det korrekt. När jag nu ska försöka använda det här i ett program som jag skriver i C# får jag det inte riktigt att fungera. Jag kan skicka data i json format från c# programmet till servern utan problem, men vet sen inte hur jag ska hantera datan som servern ska skicka tillbaka till programmet.

Koden i php för att skicka tillbaka data är så enkel som:

echo json_encode(array("message" => "Data was successfully entered into api database. Here is sent data: " . $testString));

Funkar perfekt när jag testar I POSTMAN men vet inte riktigt vilka steg jag måste ta i c# för att ta emot detta i json format. Kör med HttpClient för att skicka POST request från c#.

Koden jag använder för det i c# är

var content = new StringContent(jsonObject.ToString(), Encoding.UTF8, "application/json");
var result = client.PostAsync(url, content).Result;

Datan jag får tillbaka i c#:

StatusCode: 201, ReasonPhrase: 'Created', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
Pragma: no-cache
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Cache-Control: no-store, must-revalidate, no-cache
Date: Sat, 20 Apr 2019 20:46:17 GMT
Set-Cookie: PHPSESSID=0sj7mprqn3t52n5vfa8ho577a7; path=/
Server: Apache/2.4.25
Server: (Raspbian)
Content-Length: 109
Content-Type: application/json; charset=UTF-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
}

istället för datan jag får i POSTMAN:

{
"message": "Data was successfully entered into api database. Here is sent data: POST from POSTMAN"
}

Photosohop for iOS och Project Gemini

$
0
0

Nu är det ett halvår sedan dessa annonserades och jag hittar varken nyheter, rykten eller skvaller sedan dess.

Finns det måhända någon här som har något matnyttigt och vill skvallra?


C# 2D Vektor spel

$
0
0

Kämpar i nuläget med denna uppgift, jag förstår inte varför utskriften blir fel. Koordinaterna som matas in hamnar inte rätt på spelbrädet, och jag kan inte luska ut vart jag har knappat fel. Hjälp snälla!

UPPDATERING: Jag tror det är Y axeln som inte funkar som den ska.

static void Main(string[] args)
{
int[,] GameBoard = new int[4, 4];
int x;
int y;

System.Random Position = new System.Random();
GameBoard[Position.Next(4), Position.Next(4)] = 2;

while (true)
{
GameGrid(GameBoard);

System.Console.WriteLine("NEW SHOT");
System.Console.Write("INPUT X COORDINATES: ");
x = int.Parse(System.Console.ReadLine());
int guessedRow = x-1;
System.Console.Write("INPUT Y COORDINATES: ");
y = int.Parse(System.Console.ReadLine());
int guessedColumn = y-1;
System.Console.WriteLine("____________________");

if(GameBoard[guessedRow,guessedColumn] == 2)
{
System.Console.WriteLine("You hit the target, congratulations!!");
return;
}
else
{
GameBoard[guessedRow,guessedColumn] = 1; //användarens inmatning sätts som variabeln: 1
System.Console.WriteLine("You missed! try again");
}

}
}
//______________________________________________________

static void GameGrid(int[,] grid)
{
int count = 1;
System.Console.WriteLine(" |1|2|3|4|");

for (int y = 0; y < 4; y++)
{
System.Console.Write("" + count + "|");

for (int x = 0; x < 4; x++)
{
if(grid[y,x] == 1) //Här sker något fel. Användarens inmatning är 1. Men det blir helt fel placering på spelbrädet
{
System.Console.Write("* ");
}
else
{
System.Console.Write("");
}
}
System.Console.WriteLine("");
count++;
}

}

Frågor om utveckling av Android

$
0
0

Hej! Jag är hyfsad kunnig inom programmering. T.ex. Java, C# m.m.

Nu har jag extra tid och har bestämt mig för att försöka lära mig Androidutveckling.

Så till frågorna.

Följer en kurs på Pluralsight: "Android Apps with Kotlin: Build Your First App"

Det ska finnas fönster som t.ex. Palette och Component Tree. Var hittar jag dessa?

Till skillnad mot iOS så är det väl mycket större spridning vilka som har vilken version av Android-OS.

Om ni jobbar professionellt eller för att släppa en app, hur bestämmer ni då angående funktioner kontra att nå så många som möjligt?

Kan jag anropa GNU Octave kod så här från Java?

$
0
0

Java är ett utmärkt val när det kommer till grafiska applikationer. Stabil kod osv. Octave är ett utmärkt val när det gäller att snabbt sätta upp enkelt kod för robusta numeriska beräkningar.

Därför vill jag kombinera dessa två nu. Jag såg på detta forum att man kunde kombinera Python kod med Java kod så här:
https://stackoverflow.com/questions/38223631/how-to-call-pyth...

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class CallPython {
public static void main(String[] args) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("python", "/path/to/your/script.py", "10");
Process p = pb.start();

char[] readBuffer = new char[1000];
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);

while (true) {
int n = br.read(readBuffer);
if (n <= 0)
break;
System.out.print(new String(readBuffer, 0, n));
}
}
}

Och sedan har man sin python kod så här:

import sys

class myPythonClass:
@staticmethod
def table(nb):
i = 0
while i < 10:
print(i + 1, "*", nb, "=", (i + 1) * nb)
i += 1

if __name__ == '__main__':
myPythonClass.table(int(sys.argv[1]))

Då är frågan! Skulle detta fungera exakt med GNU Octave om man ersätter allt Python med GNU Octave?
Någon som kan förklara hur denna ProcessBuilder fungerar? Måste jag "printa" från Pythonkoden för att Java's ProcessBuilder ska kunna läsa?
------------------------------------
Jag testade att köra ett GNU Octave skript

#!/bin/sh

function testPrint ()
for i = 0:10
disp(i)
endfor
endfunction

Med denna Java-kod i samma mapp

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

public static void main(String[] args) throws IOException {

ProcessBuilder pb = new ProcessBuilder("octave", "testPrint.m", "10");
Process p = pb.start();

char[] readBuffer = new char[1000];
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);

while (true) {
int n = br.read(readBuffer);
if (n <= 0)
break;
System.out.print(new String(readBuffer, 0, n));
}

}

}

Det hände absolut inget. Har jag missat något?
Hur blir det OM jag vill skriva till GNU Octave skriptet? Hur gör jag då?

C# Objektorienterad programmering och listor

$
0
0

Hej, sitter lite i knipa här med objektorienterad programmering i C#. Har inte riktigt lossnat för mig. Hur går jag tillväga i följande uppgift?
Jag vill interagera med en listas element för att kunna skriva ut alla temperaturer i listan och dela det med antalet element i listan.

Sen måste jag också komma åt det högsta och lägsta temperaturen. Känner mig vilsen. Har kommenterat nedanför där jag har stött på problem.

class Program
{
static void Main(string[] args)
{
List<City> citys = new List<City>();

while (true)
{
System.Console.WriteLine("====VÄDERLEKEN====");
System.Console.WriteLine("1: Ange ny stad ");
System.Console.WriteLine("2: Se temperatur för samtliga städer");
System.Console.WriteLine("3: Se medeltemperatur för samtliga städer");
System.Console.WriteLine("4: Se vilken stad som är kallast & vart det är varmast");

int input = System.Convert.ToInt32(System.Console.ReadLine());

switch (input)
{
case 1:
{
System.Console.Write("Stadens namn: ");
string names = System.Console.ReadLine();
System.Console.Write("Ange temperatur: ");
int degrees = System.Convert.ToInt32(System.Console.ReadLine());
City city = new City(names,degrees);
citys.Add(city);
break;
}
case 2:
{
System.Console.WriteLine("Temperatur för samtliga städer är: ");
foreach(var item in citys)
{
System.Console.WriteLine(item.name + ": " + item.degrees);
}
break;
}
case 3:
{
System.Console.Write("Medeltemperatur för samtliga städer är: ");
foreach(var item in citys)
{
System.Console.WriteLine(); //Hur adderar man elementen i en lista?
}
break;
}
case 4:
{
System.Console.WriteLine("Lägst temperatur är det i: " + " Varmast är det i: "); //Hur kommer jag åt listans index?
break;
}
}

}
}
}

class City
{
public string name;
public int degrees;

public City(string name, int degrees)
{
this.name = name;
this.degrees = degrees;
}

}

Förbättra sig på Högskoleprovet - Feedback

$
0
0

Hej!

Jag undrar om ni har någon feedback på min hemsida https://hogskoleprovskursen.se.
Den är just nu i en beta-fas men rätt mycket grundläggande funktionalitet finns.

Själva backenden är utvecklad i Rust och frontenden i Vue så jag svarar gärna på frågor om det också.
Ni får jättegärna skriva om ni hittar några buggar också.

Med vänliga hälsningar,
Axel

Utbilda mig till java-utvecklare

$
0
0

Jag går i tankarna att sluta köra truck och utbilda mig. Är 31 år och har barn/familj.

Hade siktet på högskoleingenjör/data men blev tipsad om KY tex javaprogrammerare på 2 år. Har alltid haft lätt för matte och har nog lätt för logiskt tänkande. Jag har skrivit ett forum i PHP (och det lilla html/css/SQL det medför) och lärt mig grunderna i C# visual studio av eget intresse.

Är Java framtidssäkert och värt att välja? Lyssnar gärna på era funderingar och råd.

Feedback på min kod (Färdig)

$
0
0

blev precis klar med uppgift 14.1 i arbetsboken om programmering. Tänkte se ifall det var någon som har feedback att ge då jag sitter hemma och knappar helt ensam och vet inte alltid om min kod är så snygg den kan vara.

Uppgifts anvisning: Skapa en klass som hanterar personer med namn och personnummer. Skapa sedan en lista med själp av klassen list. användaren ska i programmet kunna lägga till personer till listan, samt söka på personnummer i listan. När användaren söker ska namnet och index för personern skrivas ut.

class Program
{
static void Main(string[] args)
{
List<PersonDatabas> Databas = new List<PersonDatabas>();

while (true)
{
System.Console.WriteLine("===Person databas===");
System.Console.WriteLine("Ange svars allternativ");
System.Console.WriteLine("________________________");
System.Console.WriteLine("1: Lägg till person i databasen");
System.Console.WriteLine("2: Sök på ett person nummer");
System.Console.WriteLine("3: Sök på person med namn");
System.Console.WriteLine("4: Skriv ut alla medlemmar i databasen");
int svar = System.Convert.ToInt32(System.Console.ReadLine());

switch (svar)
{
case 1:
{
System.Console.Write("Ange personens namn: ");
string namn = System.Console.ReadLine();
System.Console.Write("Ange personens person nummer:");
long personNr = System.Convert.ToInt64(System.Console.ReadLine());
PersonDatabas personDatabas = new PersonDatabas(namn, personNr);
Databas.Add(personDatabas);
break;
}
case 2:
{
System.Console.Write("Sök på en person med personnummer: ");
long sökning = System.Convert.ToInt64(System.Console.ReadLine());
foreach (var element in Databas)
{
if (sökning == element.personNr)
{
int index = (Databas.IndexOf(element) + 1);
System.Console.WriteLine(index + ": " + element.name + ": " + element.personNr);
}
else
{
System.Console.WriteLine("Personen är inte inlaggd");
}
}
break;
}
case 3:
{
System.Console.Write("Ange personens namn: ");
string namn = System.Console.ReadLine();
foreach (var person in Databas)
{
if (string.Compare(namn, person.name) == 0)
{
System.Console.WriteLine(person.name + ": " + person.personNr);
}
else
{
System.Console.WriteLine("Personen är ej inlaggd");
}
}
break;
}
case 4:
{
System.Console.WriteLine("Skriver ut alla medlemmar: ");
foreach (var element in Databas)
{
System.Console.WriteLine(element.name + ": " + element.personNr);
}
break;
}
}
}
}
}
class PersonDatabas
{
public string name;
public long personNr;

public PersonDatabas(string name, long personNr)
{
this.name = name;
this.personNr = personNr;
}
}


echo json_encode($response) fungerar inte react.js

$
0
0

Hej!

Jag håller på med en inloggning och jag skulle vilja föra över en text från PHP till react.js när inloggningen har genomförts.
Men jag får inte echo json_encode($response) att fungera som jag tänkt.
Tänker jag helt fel??

<?php

header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Credentials: true");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token , Authorization');
include("connect.php");

$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);

if( !empty($_POST['loginEmail']) && !empty($_POST['loginPassword']))
{

http_response_code(200);

$email = $_POST['loginEmail'];
$password = $_POST['loginPassword'];

$sql = "SELECT email FROM User WHERE email='$email'";

$result = mysqli_query($connect, $sql) or die("Query died: loginEmail");
$num = mysqli_num_rows($result);

if($num >0)
{
$sql = "SELECT password FROM password WHERE password='$password' AND userid = (SELECT userid FROM user WHERE email='$email') ";
$result2 = mysqli_query($connect, $sql) or die("Query died: loginPassword");
$num2 = mysqli_num_rows($result2);

if($num2 > 0)
{

$_SESSION['auth']="yes";
$_SESSION['logname'] = $_POST['loginEmail'];
$sql = "INSERT INTO Login (loginName, loginTime) VALUES ('$_SESSION[logname]' ,NOW())";

$result3 = mysqli_query($connect, $sql) or die("Query died: insert");
$num3 = mysqli_num_rows($result3);

$response = 'true';
echo json_encode($response);

if($num3 > 0)
{
$email = $_POST['loginEmail'];
$sql = "SELECT userid FROM User WHERE email='$email'";

$result3 = mysqli_query($connect, $sql) or die("Query died: insert");

$result = $connect ->query($sql);
$return_arr = array();

if($result = mysqli_query($connect, $sql)) {
while($row = mysqli_fetch_assoc($result)) {
$row_array['userid'] = $row['userid'];
$response = $row['userid'];
array_push($return_arr, $row_array);
}
}
echo json_encode($return_arr);
mysqli_close($connect);*/
}
}
else {
$message_1 = "The Login Name, '$_POST[loginEmail]'
exists,but you have not entered the correct password! PLease tyr again.";
$loginEmail=strip_tags(trim($_POST['loginEmail']));
$response = "false";
echo json_encode($response);
}
}
else {
$message_1 = "The User Name you entered does not exists! Please try again.";
$response = "false";
echo json_encode($response);
}
}

?>

loginSubmit(event) {

event.preventDefault();

const data = {
loginEmail: this.refs.loginEmail.value,
loginPassword: this.refs.loginPassword.value
}

fetch('http://localhost/reusesport/src/api/login.php', {
method: 'POST',
body: JSON.stringify(data),
})
.then(response => {
console.log(response);

if(response === 'true') {
this.props.history.push(`/MySide/:user`);
} else {
console.log('felaktigt lösenord');
}
})

event.target.reset();
}

Console.log(response) ger detta.

Response {type: "cors", url: "http://localhost/reusesport/src/api/login.php", redirected: false, status: 200, ok: true, …}
body: (...)
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "cors"
url: "http://localhost/reusesport/src/api/login.php"
__proto__: Response

Tack på förhand!

Wordpress webbutik (Integrera Visma)

$
0
0

Hej där!
Hjälper min systers man att skapa en webbutik via wordpress.
Jag har inga direkta förkunskaper och skulle därav behöva lite hjälp.

1) Vad behövs för att integrera min webbutik med Visma? Finns det någon bra plugin för detta?
Hur brukar man generellt sett lägga till produkter och dylikt? Är det via Visma och så uppdateras detta på hemsidan med undermenyer och dylikt? Eller brukar man lägga till produkterna via hemsidan och binda dom med en viss nyckel som håller koll på lagersaldot via Visma?

Min hemsida i dagsläget är skapad via ett färdigt Ocean WP (detta temat: https://store.oceanwp.org/) tema som jag gjort om lite och sedan lagt till produkter via WooCommerce.

2) Vad behövs för att lägga till diverse betalsätt?

Kan gärna ta så mycket tips som möjligt för att sätta upp en webbutik. Har kollat massa YouTubevideos och dylikt, men just nu står jag still lite då jag inte riktigt vet hur det fungerar när det ska integrera med Visma..

Om någon är kunnig så kan säkert vi lösa betalning om jag kan få lite hjälp med att få igång hemsidan i utbyte mot eran tid.
Isf kontakta mig via PM. =)

Fråga 3) Vad kan en enkel webbutik kosta om man kontaktar någon "riktigt" byrå som skapar hemsidor?

Ersätta ord med rad nummer?

$
0
0

Hej,

Undrar om där finns något knep med att ersätta ett ord med radnummer? Använder mig utav notepad++ för tillfället men hittar ingen lösning med reguljära utryck.

ex.

text x
text x
text x

text 1
text 2
text 3

Öppna vid tab eller click.

$
0
0

Hej,

i dagsläget har vi på jobbet byggt en webbapplikation, med hjälp av angularjs, jquery och asp.net mvc, som är en intervju. Användaren får svara på olika typer av frågor där en typ är en dropdownmeny med flerval. Finns ett directive som håller koll på dropdownmenyn.

Dropdownmenyn är uppbyggd av en select med ett antal options, allt hämtas dynamiskt från en databas.

Klickar man på dropdownmenyn fälls den ut, väljer man ett val så fälls den ihop. Så långt är allt bra.

Nu vill vi även att den ska fällas ut när man tabbar till den och fällas in om man trycker på enter. I dag har jag löst det med en focus trigger som öppnar och en keyup för enter. För att fälla ut en select programmatiskt har jag löst det med

$(this).attr("size", len).css('z-index', '3');

där len är antal options, denna körs när den får fokus.

Problemet blir då att jag inte kan välja en option för att den ska fällas ihop, för den behåller ändå fokus. Så det har jag löst med ett click event som ser ut såhär

$(this).attr("size", 1).css('z-index', '1');

Det jag behöver hjälp med nu är:

Om jag inte har fokus på dropdownmenyn och trycker på den så får den fokus och öppnas, men stängs direkt pga click-eventet.

Hur gör jag?

Tack på förhand.

Hur lång tid tog det för dig?

$
0
0

Hej.
Jag är totalt nybörjare inom C# och även om jag börjar förstå lite enklare grunder är jag fortfarande ganska förvirrad. Så av ren nyfikenhet: hur lång tid tog det för dig att känna dig någorlunda säker på språket? Utan att för den sakens skull vara någon expert, snarare trygg i att du vet vad du håller på med. :)
Och var det något speciellt, utöver bara tid och hårt arbete, som fick poletten att trilla ner? (Jag tänker något i stil med: pluggade du en viss kurs, praktikplats eller jobb?)

Viewing all 5998 articles
Browse latest View live