Avatar billede rubaek Mester
19. juni 2008 - 17:04 Der er 13 kommentarer og
1 løsning

Gør dit valg via et link (firmanavn)

Jeg har lavet dette script. Jeg vil gerne have ændret det således at jeg i stedet for at skrive et navn i input feltet kan klikke på "firma"navnet og dermed vælge det. Det skal herefter gemmes i min database.

Script:
<?
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE.

// Connect database.
include ("login_reg.php");
$username = $_COOKIE['ID_my_site'];

// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button
if($_POST['Submit']){

// Get parameters from form.
$id=$_POST['ID'];
$ejer_firma=$_POST['ejer_firma'];
$antal=$_POST['antal'];
$username=$_POST['username'];
$kob=$_POST['antal']*($_POST['kurs']/100);
$saldo_gl=$_POST['saldo'];
$saldo=$saldo_gl-$kob;
// Do update statement.
mysql_query("update users set ejer_firma='$ejer_firma', antal='$antal', saldo='$saldo' where username='$username'");

// Re-direct this page to select.php.
header("location:index.php");
exit;
}
// ************* End update part *************


?>

<?php
include ("login_reg.php");
// Make a MySQL Connection
// Construct our join query
$query = "SELECT users.ejer_firma, users.saldo, firmaer.kurs, firmaer.firmanavn ".
"FROM users, firmaer ".
    "WHERE users.ejer_firma = firmaer.firmanavn AND username = '$username'";
   
$result = mysql_query($query) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
?>

<table border="0">
<tr>
    <td><? echo $username; ?></td>
<td><? echo $row['saldo'];
$saldo_gl=$row['saldo'];
$kurs=$row['kurs'];
?></td>
    <td><? echo $row['firmanavn']; ?></td>
    <td><? echo $row['kurs']; ?></td>
</tr>
</table>
<?php } ?>
<? echo $saldo_gl; ?>
<? echo $kurs; ?>
<!-- <? echo $saldo=$saldo_gl+10; ?>
<? echo $saldo; ?> -->
<!-- END OF PHP CODES AND START HTML TAGS -->
<html>
<body>
<!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<p>Firma navn:
<!-- name of this text field is "name" -->
<input name="ejer_firma" type="text" id="ejer_firma" value="<? echo $row['ejerfirma']; ?>"/>
<br />
Antal :
<!-- name of this text field is "email" -->
<input name="antal" type="text" id="antal" value="<? echo $row['antal']; ?>"/>
<br />
<!-- name of this text field is "email" -->
<input name="username" type="hidden" id="username" value="<? echo $username; ?>"/>
<input name="saldo" type="hidden" id="saldo" value="<? echo $saldo; ?>"/>
<input name="kurs" type="hidden" id="kurs" value="<? echo $kurs; ?>"/>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form>

</body>
</html>
Avatar billede w13 Novice
19. juni 2008 - 17:46 #1
Hvad skal du have hjælp til?
Avatar billede rubaek Mester
19. juni 2008 - 18:53 #2
Jeg er ved at prøve at lave et undeervisningsspil, hvor man skal købe og sælge fiktive aktier. Jeg er nu kommet dertil hvor de firmaer man kan købe skal lignes op på i en liste. Som der er nu skal man skrive firmanavnet og det antal aktier man gerne vil købe i et input felt. Hvis man skriver navnet forkert virker det ikke. Derfor tænkte jeg at det vil være smartere hvis de firmaer man kan købe bliver listet op og der udfor navnet er et input felt til antallet, samt et køb felt. Jeg har prøvet forskellige løsninger men det virker ikke. Håber det blev tydligere nu.
Avatar billede w13 Novice
19. juni 2008 - 18:54 #3
Ja ok. Hvor får du firmanavnene fra så? Henter du dem fra databasen eller skriver du dem manuelt ind i koden?
Avatar billede rubaek Mester
19. juni 2008 - 18:58 #4
de kommer fra en database tabel "firmaer" som indeholder et id - firmanavn - kursen på firmaet.
Avatar billede w13 Novice
19. juni 2008 - 19:09 #5
Ok. Så kunne du jo udskrive firmanavnene, så det genererede noget i stil med:

<a href="sidensnavn.php?firmanavn=firmanavn1">Firmanavn1</a>
<a href="sidensnavn.php?firmanavn=firmanavn2">Firmanavn2</a>
<a href="sidensnavn.php?firmanavn=firmanavn3">Firmanavn3</a>

Og så kan du vist rette:
if($_POST['Submit']){

// Get parameters from form.
$id=$_POST['ID'];
$ejer_firma=$_POST['ejer_firma'];

til:
if(isset($_GET['firmanavn'])){

// Get parameters from form.
$id=$_POST['ID'];
$ejer_firma=$_GET['firmanavn'];
Avatar billede rubaek Mester
19. juni 2008 - 19:16 #6
Jeg fik vis ikke skrevet at firmanavnet skal puttes i den talbel der hedder "users - ejer_firma" og ikke linke til en side. Er det ikke det dit forslag gør?
Avatar billede w13 Novice
19. juni 2008 - 19:49 #7
Jeg gik ud fra, at din nuværende kode gjorde lidt af det.

Jeg kender ikke detaljerne omkring din database, så den del kan jeg ikke hjælpe med. Det kan dog ikke gøres uden at reloade siden igen - derfor skal der linkes til samme side.
Avatar billede w13 Novice
19. juni 2008 - 19:49 #8
Men så kan du jo bare indsætte på siden:

if(isset($_GET['firmanavn'])){
  $ejer_firma=$_GET['firmanavn'];

  //Læg $ejer_firma ind i databasen

}
Avatar billede rubaek Mester
20. juni 2008 - 13:26 #9
Jeg kan ikke rigtig få det til at spille. Så nu har jeg prøvet at lave et skrabet script som der kan bygges videre på. Problemet er at jeg ikke kan få noget fra input feltet ind i den variable som skal gemmen i databasen. Det er data fra denne linie der giver problemer.
<td><input name="antal" type="text" id="antal" value="">   

Nyt script:
<?
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE.

// Connect database.
include ("login_reg.php");
$username = $_COOKIE['ID_my_site'];

// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button

if(isset($_POST['antal'])){
  $antal=$_POST['antal'];

  //Læg $ejer_firma, samt antal ind i databasen
echo $antal;
}
?>

<?php
// henter firmanavnene
include ("login_reg.php");
// Make a MySQL Connection
// Construct our join query
$query = "SELECT * FROM firmaer";
   
$result = mysql_query($query) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
?>
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<table border="0">
<tr>
    <td>Firma :<? echo $row['firmanavn']; ?></td>
    <td>Kurs : <? echo $row['kurs']; ?></td>
    <td><input name="antal" type="text" id="antal" value="">   

<input name="kurs" type="hidden" id="kurs" value="<? echo $row['kurs']; ?>"/>
<input name="nyt_firma" type="hidden" id="nyt_firma" value="<? echo $row['firmanavn']; ?>"/>
</td>
<td><input type="submit" name="Submit" value="Submit" ></td>
</tr>
</table>

<?php } ?>

<!-- END OF PHP CODES AND START HTML TAGS -->
<html>
<body>

</form>

</body>
</html>
Avatar billede w13 Novice
20. juni 2008 - 13:31 #10
Altså linjen: $antal=$_POST['antal'];
skulle meget gerne sørge for, at $antal indeholder det indtastede antal.
Avatar billede w13 Novice
20. juni 2008 - 13:38 #11
Og så ville jeg nok rette koden til:

<html>
<body>

<?
// Connect database.
include ("login_reg.php");
$username = $_COOKIE['ID_my_site'];

// ***** This part will process when you Click on "Submit" button *****
// Check if you clicked "Submit" button

if(isset($_POST['antal'])){
    $antal=$_POST['antal'];

    echo $antal;
}

// Make a MySQL Connection
$query = "SELECT * FROM firmaer";
   
$result = mysql_query($query) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
?>
<form method="post" action="<?=$PHP_SELF;?>">

    <p>Firma : <?=$row['firmanavn'];?></p>
    <p>Kurs : <?=$row['kurs'];?></p>
    <p><input name="antal" type="text"></p>

    <input name="kurs" type="hidden" value="<?=$row['kurs'];?>">
    <input name="nyt_firma" type="hidden" value="<?=$row['firmanavn'];?>">

    <p><input type="submit" name="Submit" value="Submit" ></td></p>

</form>
<?}?>

</body>
</html>
Avatar billede w13 Novice
20. juni 2008 - 13:40 #12
Det synes jeg er noget mere overskueligt, og så udskriver du ikke data før "<html>", du lukker ikke kun ét <form>-tag, men dem allesammen, og du har ikke flere ens id'er. ;)
Avatar billede rubaek Mester
20. juni 2008 - 14:57 #13
Det ser ud som om det spiller. Send et svar.
Avatar billede w13 Novice
20. juni 2008 - 15:55 #14
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester