Toon posts:

Hoe moet ik automatisch een <input> vullen?

Pagina: 1
Acties:

Vraag


Verwijderd

Topicstarter
Hallo,

Ik heb een vraag, momenteel ben ik bezig aan een oefen project......
Nu heb ik een formulier gemaakt. Maar is er een mogelijkheid dat als ik 1 <input type"text"> invul dat ik met deze informatie andere text velden ook kan vullen? Bijvoorbeeld als iemand zijn naam invult dat je dan meteen zijn adres, telefoonnummer, leeftijd, enz kan invullen in de andere text velden vanuit de database. Zelf had ik al een session gemaakt met de value van het text veld 'naam', deze geprobeerd in een query te runnen in de andere velden maar dit had geen succes......is er iemand die weet hoe ik dit probleem kan oplossen?

Alvast bedankt!

[ Voor 7% gewijzigd door Verwijderd op 12-09-2018 10:05 . Reden: iets vergeten te vermelden ]

Alle reacties


Acties:
  • +1 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 10:37

Cyphax

Moderator LNX
Welk platform gebruik je? Je geeft te weinig informatie, om meer dan een leidraad te kunnen geven. Heb je een idee hoe je die databaseverbinding moet regelen bijvoorbeeld? Kan je wat code laten zien, van wat je al hebt gemaakt?

Saved by the buoyancy of citrus


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:14

RM-rf

1 2 3 4 5 7 6 8 9

Verwijderd schreef op woensdag 12 september 2018 @ 09:59:

Zelf had ik al een session gemaakt met de value van het text veld 'naam', deze geprobeerd in een query te runnen in de andere velden maar dit had geen succes......
wat bedoel je daarmee....?

Een sessie betekent hooguit dat bepaalde gegevens 'bewaard' blijven, als een gebruiker verschillende requests doet naar de server...

Wat jij echter beschrijft is dat je aan de serverkant asynchroon op basis van bepaalde user-input-acties, gegevens wilt opvragen en deze dan actief invullen in een formulier zonder dit te herladen...
Dat suggereert dat je ergens een ajax-request zou willen maken, en als hierbij gegevens terugkomen deze invoegen.


Hoe dat exact te doen ligt sterk eraan welke technieken of frameworks je gebruikt, en welke interfaces deze voor ajax-requests, callbacks en responses hebben

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • mcDavid
  • Registratie: April 2008
  • Laatst online: 02-10 08:45
Verwijderd schreef op woensdag 12 september 2018 @ 09:59: Zelf had ik al een session gemaakt met de value van het text veld 'naam', deze geprobeerd in een query te runnen in de andere velden maar dit had geen succes......is er iemand die weet hoe ik dit probleem kan oplossen?
Wat ging er mis dan? Als je dat niet vertelt wordt het nogal moeilijk om je verder te helpen...

Verwijderd

Topicstarter
Om mee te beginnen de talen die ik begrijp zijn, HTML, PHP, CSS, Javascript. Ik probeer even via code mijn vraag uit te leggen.

<html>
<head>
</head>
<body>
<form>
<input type="text" id="naam" name="naam">
<input type="text" id="adres" name="adres">
<input type="text" id="telefoonnummer" name="telefoonnummer">
<input type="text" id="leeftijd" name="leeftijd">
<input type="text" id="geslacht" name="geslacht">
</form>
</body
</html>

Wat mijn vraag is als iemand zijn naam invult is er dan een mogelijkheid om de andere text velden automatisch in te vullen? Aangezien deze informatie al in een database zit.......

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022

Ebayzo

hij/hem

@VerwijderdJa, met een combinatie van JS + PHP moet je een heel eind komen.

Default blanke hetero


Verwijderd

Topicstarter
Ik probeerde een session te maken van de naam en die dan in een query te runnen in de andere velden maar dat werkte niet.

Acties:
  • +1 Henk 'm!

  • Montaner
  • Registratie: Januari 2005
  • Laatst online: 05-10 21:08
Verwijderd schreef op woensdag 12 september 2018 @ 10:46:
Ik probeerde een session te maken van de naam en die dan in een query te runnen in de andere velden maar dat werkte niet.
Misschien toch maar eens je schoolboeken erbij pakken. Of zoek wat gelijkwaardige opdrachten via Google. We zijn hier niet voor jouw huiswerk. En lees even de regels mbt het forum door... als er dan nog vragen zijn dan kan je ze natuurlijk altijd stellen :).

[ Voor 6% gewijzigd door Montaner op 12-09-2018 10:48 ]


  • 0stone0
  • Registratie: Maart 2015
  • Laatst online: 02-10 11:36

0stone0

01000010 01101111 01100101 !

Zeker!

Met behulp van de onChange event kan je opvangen als een input wordt gevuld.

Vervolgens kan je de nodige informatie uit de database halen, en deze plaatsen in de andere input velden mbv JavaScript :P
Verwijderd schreef op woensdag 12 september 2018 @ 10:46:
Ik probeerde een session te maken van de naam en die dan in een query te runnen in de andere velden maar dat werkte niet.
Welk framework gebruik je?
Kan je iets van code delen? Dan kunnen we je veel beter helpen!

tip: gebruik de [code] [ /code] tags!

"~~Linux is only free if your time has no value"


Acties:
  • +1 Henk 'm!

Verwijderd

Topicstarter
Het is niet mijn huiswerk.......gewoon omdat ik ook nog een keer iets wil leren.....ons huiswerk voor deze week is googlemaps.api te gebruiken in C#.

Een framework gebruik ik volgens mij niet......ik neem aan dat je dan zoiets bedoeld als laravel of codeigniter?

Dit is mijn code zoals in het php bestand:

<?php
session_start();
?>
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$databasename = "test";

$connect = mysqli_connect($hostname, $username, $password, $databasename);
$query1 = "SELECT adres FROM adres WHERE naam= (select naam from gegevens where naam = '".$_SESSION["name"]."')";

$_SESSION['name'] = $_POST['naam']
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

<form action="test.php" method="post">

<input type="text" id="naam" name="naam">

<input type="text" id="adres" name="adres" value="<?php mysqli_query($connect,$query1)?>">

<input type="text" id="telefoonnummer" name="telefoonnummer">

<input type="text" id="leeftijd" name="leeftijd">

<input type="text" id="geslacht" name="geslacht">

<?php
echo $_SESSION['name'];
?>

</form>

</body>
</html>

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 11:14

RM-rf

1 2 3 4 5 7 6 8 9

Verwijderd schreef op woensdag 12 september 2018 @ 11:03:

Dit is mijn code zoals in het php bestand:
begrijp je het concept van asynchrone requests?


Wat je nu weergeeft aan code is een serverside gegenereerde pagina, die dus enkel uitgevoerd wordt als de pagina opgevraagd wordt.
in jouw geval maak je ook nog eigenlijk de 'fout' een sessie variabele te willen gebruiken, terwijl die zelf helemaal niet geset is (de sessie-variabele wordt bij het posten van je 'naam'-waarde pas geset nadat je al een query ermee hebt uitgevoerd.... in jouw geval zou je pas een resultaat ontvangen als bij de tweede keer submitten van je formulier als je ook de result-output van die mysqli_query() correct zou uitlezen, ook daarin 'vergeet' je een stuk code, zoek ook eens op hoe exact een mysqli_query uit te voeren))

Je getoonde voorbeeld 'reageert' echter niet op basis van gebruikers input als dat formulier allang gegenereerd is door de server en bij de client aangekomen...
Wil je dat wel, moet je gebruik maken van bv een clientside script dat regaart op bepaalde events als het onchange (of onkeydown) event in de input en op basis dan een asynchroon request stuurt in de 'achtergrond'...

om te ontdekken naar hoe dat exact moet, kan ik je aanraden eens op zoek te gaan naar 'ajax' via google en wat voorbeeldscripts te bekjken en eventueel ook proberen zelf na te maken

[ Voor 23% gewijzigd door RM-rf op 12-09-2018 11:26 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
ja dat had ik natuurlijk kunnen weten.......zal inderdaad daar nog even op googelen.

Acties:
  • +1 Henk 'm!

  • Stoelpoot
  • Registratie: September 2012
  • Niet online
Tip om mee te beginnen: Gebruik \[code\] tags, dat leest wat makkelijker.

Om te beginnen: Om eerlijk te zijn heb ik het idee dat je probeert te rennen terwijl je nog niet lopen kan. Om dynamisch gegevens in te vullen zonder de pagina te herladen, moet je eerst al begrijpen hoe je überhaupt dat soort gegevens goed ophaalt en vertaald vanuit SQL, wat je zo te zien ook nog niet kent. Daarna kan je kijken dat dus, zoals mijn mede-commenter aangeeft, asynchroon te laten gebeuren zonder page-refresh. Als je dat tegelijkertijd wilt doen (zeker op jouw niveau, hard gezegd) maak je het jezelf lastig, omdat je meerdere dingen door elkaar heen moet leren.

Mijn advies is dus om, in plaats van dit alles direct uit te werken, eerst een form te maken om de naam in te vullen, en dan via een submit-button het adres daarbij op te halen. Zodra je dat hebt, heb je namelijk al uitgewerkt hoe je het adres ophaalt vanuit de naam. Daarna is het een kwestie van dat deel hergebruiken op een manier die asynchroon werkt.

Dat, of je doet het andersom, waarbij je eerst AJAX leert, en daarna je SQL-query verfijnt. Dan zou je dus je AJAX-call altijd hetzelfde laten teruggeven, en zodra dat werkt kan je SQL daarop aansluiten. Maar onthoudt dat die 2 dingen losse concepten zijn en dat tegelijkertijd leren vaak niet de beste aanpak is.

Acties:
  • +1 Henk 'm!

  • ArisB
  • Registratie: Oktober 2004
  • Laatst online: 03-10 10:32
Geen antwoord op je vraag, maar als je toch aan het proberen bent kijk dan gelijk even naar PDO :)

http://php.net/manual/en/book.pdo.php
https://phpdelusions.net/pdo

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 10:50
Dit is natuurlijk ook dubbelop en voer voor bugs. Wat gebeurd er bijvoorbeeld met mensen die dezelfde naam hebben? Sowieso werkt de query dan niet meer, want je substring resulteert dan in meerdere records. Maar dat is alleen nog maar de technische consequentie. Dit gaat nog een stap terug. Namelijk over het logisch modelleren van je gegevens.
SQL:
1
SELECT adres FROM adres WHERE naam = (select naam from gegevens where naam = 'foo')

Sowieso kan je beter geen foreign key relaties maken o.b.v. een string veld. Maar dat is iets voor je cursor databases.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

Let ook aub op SQL injectie!

  • Stoelpoot
  • Registratie: September 2012
  • Niet online
Dit ook ja... Zodra je dit eenmaal werkend hebt. SQL Injectie leren voorkomen als je nog niet volledig begrijpt hoe je SQL werkt, is ook tegen een waterval op zwemmen.

  • nextnext
  • Registratie: September 2015
  • Laatst online: 21-09 15:47
Antwoord op je vraag in jip en janneke: gebruik javascript of jquery om de waarde van je veld (naam) via ajax te versturen naar je php file die de waarde gebruikt om de gegevens uit je database te halen en stuur die gegevens weer terug om ze dan via jquery in de velden te gebruiken.

form.php
<input>
on change voer functie getPersonInfo() uit met code zoiet als dit:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        var name = $('#name').val(); // je input veld
    $.ajax({
            type : 'POST',
            url : 'functions.php',
            dataType : 'JSON',
            data : {
                name : name
            }
        }).done(function(response) {
            // do something
            $('.address').val('response.address');  // je output veld

        }).fail(function(data) {
            // error

        }); 


in je functions.php doe je een echo json_encode($data) waar je $data bijvoorbeeld een array is met de gegevens van de persoon die je uit je database hebt gehaald.

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
onkeydown wtf?!? Waarom lees ik nergens oninput?

Verder: als je iemand zijn naam invult, hoe vul je het adres in voor meneer Jansen als er meerdere meneer Jansen zijn?

[ Voor 55% gewijzigd door DJMaze op 12-09-2018 18:20 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • _NooT_
  • Registratie: Juni 2018
  • Laatst online: 06-10 22:52
Ik begrijp wat je wil bereiken, maar het is een heel eigenaardige (en gevaarlijke!) benadering.
Je zou een willekeurige naam kunnen invullen en iemand adresgegevens te zien krijgen. Dat mag natuurlijk nooit gebeuren. Ik zou toch voor 1 van de standaard methoden kiezen:

Of
je werkt met een account, waarbij iemand eerst moet inloggen, waarna je de user-info kan ophalen en het formulier kan pre-fillen

Of
je slaat eerder ingevulde gegevens op in een session en/of cookie en gebruikt deze dat om het formulier te pre-fillen. Niet aan te raden als meerdere gebruikers op 1 apparaat binnen dezelfde browser dit formulier gaan gebruiken.

Of (niet doen, maar het zou kunnen)
je gebuikt het formulier gelijk als inlogformulier en vraagt eerst om bijvoorbeeld een e-mailadres/unieke gebruikersnaam + wachtwoord, waarna je dmv ajax de gebruiker kan laten inloggen en de data ophaalt en het formulier hiermee vult.
Niet handig en onnodig moeilijk voor jezelf.


Iets anders:
Om een actie te ondernemen als iemand klaar is met het invullen van een veld, zou ik het event onBlur gebruiken.

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Verwijderd schreef op woensdag 12 september 2018 @ 09:59:

Bijvoorbeeld als iemand zijn naam invult dat je dan meteen zijn adres, telefoonnummer, leeftijd, enz kan invullen in de andere text velden vanuit de database.
Ja; dat kan. Is het praktisch gezien een goed idee om ooit te implementeren? Nee.

Je hebt nogal een probleem met privacy-wetgeving als je willekeurige personen via het opgeven van één NAW gegeven zoals een achternaam, alle andere aangesloten NAW gegevens die in je database zitten, op te laten halen.


Dat is waarom dit soort functionaliteit via browsers zelf geregeld moet worden; aan de kant van de gebruikers zelf. Zoek eens op wat auto-fill is.

[ Voor 12% gewijzigd door R4gnax op 18-09-2018 00:03 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Een wijs man zei ooit: Er zijn meer hondjes die Fikkie heten.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1