Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[PHP] Antwoord in textvak

Pagina: 1
Acties:
  • 719 views

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 16-11 21:44
Ik ben bezig met een vrij simpel reken scriptje, maar ik kom er tot nu toe nog niet helemaal uit.
Het script zet een decimaal getal om naar een binair getal.
Dit kan met de decbin() functie.

Wat ik tot nu toe heb:
code:
1
2
3
4
5
6
7
8
9
10
Decimaal getal<br>
<input type='text' name="dec" maxlength="5" size="3">
<input type='submit' name='submit' value='Converteren'><br>
Binair getal<br>
<INPUT disabled type='text' name="bin">

<?php
$dec=$_POST['dec'];
echo decbin($dec);
?>

Afbeeldingslocatie: http://i314.photobucket.com/albums/ll431/Vinzr/Klembord02-1.jpg

Natuurlijk werkt deze code nog niet, maar wat ik dus wil is als ik in het bovenste veld (dec) een getal invul en op submit (Converteren) klik, ik het binaire antwoord in het onderste input (bin) veld krijg. Het liefst zonder naar een andere pagina doorgestuurd te worden, want dat lukt me zelf ook wel. Bvd!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je de echo dan eens op de juiste plek zet :? Een invoer veld heeft gewoon een value attribuut ;)
Naar dezelfde pagina posten is een kwestie van je form action naar de juiste url verwijzen (dezelfde php dus). Maar dat hele form zie ik niet in je code.

Maar wat ik nogal zie in je topic is een "dit heb ik, dat wil ik". Ik mis wat je zelf hebt geprobeerd, wat er niet werkt en waarom je denkt dat het niet werkt. Verder is dit toch, met alle respect, nogal basis. Misschien eens een tutorial nemen.

[ Voor 103% gewijzigd door RobIII op 29-08-2008 00:55 ]

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


  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik zou het sowieso oplossen met Javascript. Zie b.v. hier voor de een functie: http://www.javascriptkit.com/script/script2/binconvert.shtml

PHP kan natuurlijk ook, maar dan moet je met Ajax aan de slag gaan om ervoor te zorgen dat je de pagina niet hoeft te refreshen. Beetje onzinnig en overkill.

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 16-11 21:44
RobIII schreef op vrijdag 29 augustus 2008 @ 00:51:
Als je de echo dan eens op de juiste plek zet :? Een invoer veld heeft gewoon een value attribuut ;)
Naar dezelfde pagina posten is een kwestie van je form action naar de juiste url verwijzen (dezelfde php dus). Maar dat hele form zie ik niet in je code.

Maar wat ik nogal zie in je topic is een "dit heb ik, dat wil ik". Ik mis wat je zelf hebt geprobeerd, wat er niet werkt en waarom je denkt dat het niet werkt. Verder is dit toch, met alle respect, nogal basis. Misschien eens een tutorial nemen.
Sorry dat ik wat vaag overkom, zal wel komen omdat het laat is.
Maar nu heb ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Decimaal getal<br>
<form action="stuff.php" method="post">
<input type='text' name="dec" maxlength="5" size="3">
<input type='submit' name='submit' value='Converteren'><br>
Binair getal<br>
<INPUT disabled type='text' name="bin" value= "">
</form>

<?php
$dec=$_POST['dec'];
$uitslag=decbin($dec);
echo $uitslag;
?>

Alleen lukt het me niet om die $uitslag in het onderste input veld te krijgen, kan je me vertellen hoe ik dat doe?

  • Noork
  • Registratie: Juni 2001
  • Niet online
Viasco schreef op vrijdag 29 augustus 2008 @ 01:02:
[...]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$uitslag="";
if($_POST) {
$dec=$_POST['dec'];
$uitslag=decbin($dec);
}
?>

<form action="stuff.php" method="post">
<input type="text" name="dec" maxlength="5" size="3">
<input type="submit" name="submit" value="Converteren"><br>
Binair getal<br>
<input disabled type="text" name="bin" value="<? echo $uitslag; ?>">
</form>

Alleen lukt het me niet om die $uitslag in het onderste input veld te krijgen, kan je me vertellen hoe ik dat doe?
Zet echo $value dan op z'n minst in de value ;) Zie m'n wijziging in je code hierboven.

[ Voor 5% gewijzigd door Noork op 29-08-2008 01:11 ]


  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 16-11 21:44
Noork schreef op vrijdag 29 augustus 2008 @ 01:04:
[...]

Zet echo $value dan op z'n minst in de value ;) Zie m'n wijziging in je code hierboven.
Aah wat stom! Ik zie al wat ik fout deed, de input moest onder de variabele staan, en nu werk hij wel!
Bedankt!

Edit: Nog 1 ding, als ik naar de pagina ga waar de converter staat, krijg ik deze melding:
Notice: Undefined index: dec in D:\Websites\Vinze' Place\site\stuff.php on line 16
Dit komt omdat dec nog geen waarde heeft. Moet ik hier met een if instellen dat wanneer dec kleiner is dan 1 hij er zelf het getal 1 van maakt?

[ Voor 33% gewijzigd door Vinze op 29-08-2008 01:15 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Gebruik isset().

  • daniëlpunt
  • Registratie: Maart 2004
  • Niet online

daniëlpunt

monkey's gone to heaven

of zet $dec = null voordat je die if () hebt :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Noork schreef op vrijdag 29 augustus 2008 @ 01:04:
[...]

Zet echo $value dan op z'n minst in de value ;) Zie m'n wijziging in je code hierboven.
Hier in de devschuur hanteren we een beetje het motto: "Give a man a fish, feed him for a day. Teach a man how to fish, feed him for a lifetime."
Probeer het voorkauw gehalte voortaan een beetje lager te houden, dan léért de TS ook dingen uitpuzzelen en documentatie lezen in plaats van copy/pasten.

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


  • Noork
  • Registratie: Juni 2001
  • Niet online
RobIII schreef op vrijdag 29 augustus 2008 @ 01:29:
[...]
Hier in de devschuur hanteren we een ......
Goed, maar blijkbaar heeft hij jouw eerste hint niet begrepen. Dus geef ik maar een extra zetje. De errors moet hij zelf maar oplossen :)

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 16-11 21:44
super-muffin schreef op vrijdag 29 augustus 2008 @ 01:25:
of zet $dec = null voordat je die if () hebt :)
Die $dec pakt hij wel, maar die andere dec niet, aangezien die in het textvak staat.
Bij op openen van de pagina staat er nog niks in het textvak dus kan hij de variabele $dec ook niks geven. Ga nu me bed in, denk dat het rond dit tijdstip toch niet meer lukt :O

  • mr_derk
  • Registratie: September 2005
  • Laatst online: 16-11 21:52
pas dezelfde truck dan toe op die variabele...


Ik vraag me af in hoeverre je zelf wat probeerd, voordat je hier weer een vraag stelt.

Verwijderd

je moet natuurlijk wel de waarde binnen de "value" van het input veld zetten
code:
1
<input type="text" name="dec" value="<?= $mijn_var; ?>">


edit: beetje spuit elf, had de antwoorden hierboven nog niet allemaal gelezen

[ Voor 21% gewijzigd door Verwijderd op 29-08-2008 14:25 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

* BtM909 reads PHP -> PRG

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 16-11 21:44
Vandaag op school nog ff bezig geweest met het script, en ben maar weer met een schone lei begonnen. Aangezien ik alles op één pagina wil houden heb ik alles in 1 document gegooid en die ziet er als volgt uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
session_start();
?>
<style type="text/css">
body { font-family: arial; font-size: 10pt; }
#content { border: 1px solid #000000; 
width: 150px; Position: relative; 
left: 20px; top: 10px; padding: 10px;}
    </style>

<A HREF="test.php">Home</A>
<div id="content">
Decimaal getal:<br>
    <form action="test.php" method="post">
        <input type='text' name="dec" maxlength="5" size="3" value="<? $dec; ?>">
        <input type='submit' name='submit' value='Converteren'><br>
    </form>

<?php
$dec=$_POST['dec'];
$_SESSION['dec']=$dec;

if(!isset($dec)){
    echo 'Vul wat in aub!';
    die ();
}
echo "Binair getal:<br>";
$uitslag=decbin($dec);
?>

<INPUT type='text' READONLY name="bin" value="<? echo $uitslag; ?>">
</div>


Als ik de pagina open zie ik dit:
Afbeeldingslocatie: http://img523.imageshack.us/img523/3528/fout1cd4.jpg

Vul ik iets in en klik ik op converteren krijg ik dit:
Afbeeldingslocatie: http://img517.imageshack.us/img517/5472/fout2xe7.jpg

1. Nu zou ik graag willen dat die foutmelding verborgen word.
2. Als ik een decimaal getal invoer, hij deze onthoud en laat staan wanneer ik op Converteren geklikt heb.

Wat heb ik geprobeerd om de foutmelding op te lossen?
In regel 15 value="<? $dec; ?>;" neerzetten, dit heeft niet geholpen omdat $dec nog geen waarde heeft. Ook heb ik value="1" erin gezet, maar deze pakt hij niet meteen (moet eerst op Converteren klikken)

Daarnaast ben ik bezig geweest ervoor te zorgen dat het ingevoerde decimale getal blijft staan, zonder succes helaas. Dit heb ik geprobeerd via een sessie $_SESSION['dec']=$dec; en vervolgens de $dec in de value te zetten, wat dus niet geholpen heeft.

Iemand het script over zou kunnen nemen en kunnen testen hoe hij wel werkt?
En mocht diegene tijd over hebben uitleggen wat ik fout doe?

Bedankt alvast!

Hoop dat ik nu duidelijker ben als in m'n vorige posts :)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:02

TeeDee

CQB 241

1: kijk eens wat er op regel 20 gebeurd. Je initialiseert een variabele met een tot dan toe ($POST) niet bekende waarde. Dus eerst even controleren of er een POST is, zo ja > variabel setten.
2: <? echo waarde ?>


En ik ga er maar voor het gemak van uit dat je de SESSION nog ergens anders nodig hebt, want hier is 't danig overbodig.

[ Voor 23% gewijzigd door TeeDee op 29-08-2008 16:21 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Noork
  • Registratie: Juni 2001
  • Niet online
$_POST bestaat ook niet. Gebruik daarvoor iets van isset($_POST) of if($_POST). Lees mijn eerdere stukje code nog eens aandachtig door.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
1) Nofi, maar hoe je die notice moet verhelpen is echt basic google werk. Controleer gewoon of een var bestaat voordat je hem gebruikt, of zorg gewoon dat hij altijd bestaat met een bepaalde default waarde.

2) Het onthouden kan natuurlijk op exact dezelfde manier, door die input value in te vullen. :z

{signature}


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Sorry, maar dit wordt verder teveel aan het handje vasthouden. Je initiële probleem was al op te lossen met een basiskennis van wat PHP is en kan, en eventueel met wat hulp van de manual. En voor je meest recente probleem: dat een variabele die niet per se in elke conditie bestaat een notice oplevert is natuurlijk ook niet zo gek. ;)

Ik stel voor dat je even een basistutorial opzoekt over het afhandelen van gebruikersinvoer, daar staat alles in wat je weten moet. :)
Noork schreef op vrijdag 29 augustus 2008 @ 16:18:
$_POST bestaat ook niet. Gebruik daarvoor iets van isset($_POST) of if($_POST). Lees mijn eerdere stukje code nog eens aandachtig door.
$_POST bestaat op die regel wél, anders zou je immers geen error met betrekking tot een undefined index krijgen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.