Avatar billede chris0905 Nybegynder
01. oktober 2009 - 17:01 Der er 8 kommentarer og
1 løsning

Give en text en ID

Hey Eksperter!

Jeg har et lille problem med et php script. Jeg har en side (side1), med en action-kanp der fører til en anden side (side2), på side2 vil jeg gerne kunne se en text som står på side1. Jeg vil ikke bare skrive den igen, det skal være lige som med en formular.

Håber det er til at forstå, og at kan og vil hjælpe mig!


Hilsen

Christoffer
Avatar billede acore Ekspert
01. oktober 2009 - 17:59 #1
Hvis teksten står i et felt på side 1 og du går videre til side 2 med et klik på en knap, så kan/vil det (hvis din kode er lavet rigtigt), blive "sendt" med POST til side 2, hvor du kan få fast i det via $_POST['xxx'], hvor xxx er det navn, du gav feltet på side 1.
Avatar billede chris0905 Nybegynder
01. oktober 2009 - 18:23 #2
teksten står ikke i et felt men i et <p> </p> tag. Kan man gøre noget der??
Avatar billede acore Ekspert
01. oktober 2009 - 18:27 #3
Du kan gemme den også i et hidden felt, så kommer den med ved POST, men hvis den kun står i en hardkodet <p></p> tag, så har du den jo allerede, og kan bare skrive den ind på side 2 også. I modsat fald tror jeg du må forklare konceptet lidt bedre.
Avatar billede chris0905 Nybegynder
01. oktober 2009 - 18:43 #4
Jeg er ved at lave et webshop-system, og når man lægger en vare i kurven, gemmer den det i en cookie. Så for at jeg ikke skal lave 100000 setcookie-filer, så vil jeg gerne have at setcookie-filen henter navn og pris på varen.
Det er så derfor at jeg gerne vil have noget tekst med en id.
Jeg har prøvet med en skjult tekstboks med en value i, men jeg fik den ikke frem. Jeg har en idé om at det er setcookie-filen.

Men du kan lige få koden:

varesiden.php (det hedder den ikke)

<body>
<div id="header">
<? include('header.php'); ?>
</div>
<div id=headline>
<form action="setcookie.php" method="post">
<h2 id=head>Drenge armbånd (sort) m. lavaperle</h2>
<hr>
<input type="text" id="vare" value="Drenge armbånd (sort) m. lavaperle">
</div>
<div id=pris>
<p id=pris>
50,00,-
</p>
<br><br><br><br><br><br>
<input type=submit value=Køb>
</form>
</div>
<div id=text>
Et flot armbånd, godt til drenge, men kan dog også bærres af piger.<br>Knyttet armbånd med ægte lavaperle i.
<input type="text" id="pris" value="50,00 ,-">
</div>
<div id="page">
<div id="pix">
<img id="pladsholder" src="http://helenes-smykker.aee.dk/webshop/produkter/1.jpg" alt="Billedgalleri" />
</div>
<div id="links">
<ul id="pixgalleri">
    <li>
      <a tabindex="1" href="http://helenes-smykker.aee.dk/webshop/produkter/1.jpg" title="">
      <img src="http://helenes-smykker.aee.dk/webshop/produkter/1.jpg" height="97" alt="" /></a>
    </li>
    <li>
      <a tabindex="2" href="http://helenes-smykker.aee.dk/webshop/produkter/2.jpg" title="">
      <img src="http://helenes-smykker.aee.dk/webshop/produkter/2.jpg" height="97" width="80" alt="" /></a>
    </li>
    <li>
      <a tabindex="3" href="http://helenes-smykker.aee.dk/webshop/produkter/3.jpg" title="">
      <img src="http://helenes-smykker.aee.dk/webshop/produkter/3.jpg" height="97" alt="" /></a>
    </li>
  </ul>
</div>

<div class="cl"></div>


</body>
</html>


Og så setcookie.php (det hedder den)

<?php
$vare = $_POST["vare"];
$pris = $_POST["pris"];

setcookie(\'vare\', \'$_POST["vare"]\', time()+3600);
setcookie(\'pris\', \'$_POST["pris"]\', time()+3600);
?>
Varen er nu i Deres indkøbskurv.

<a href="http://helenes-smykker.aee.dk/webshop/helenes-smykker-webshop-system.php">Videre</a>



Håber du kan forstå det bedere nu.
Avatar billede acore Ekspert
01. oktober 2009 - 19:45 #5
Nej, jeg forstår ikke logikken. Anyway, prøv med:

<input type="hidden" id="vare" value="Drenge armbånd (sort) m. lavaperle">
<input type="hidden" id="pris" value="50">

og skift dette i setcookie:

setcookie('vare', $vare, time()+3600);
setcookie('pris', $pris, time()+3600);

Så vises værdierne ikke, og brugeren kan ikke ændre dem.
Avatar billede dkfire Nybegynder
01. oktober 2009 - 20:53 #6
At lave en webshop uden database er ikke særlig smart. Du får meget bøvl med at opdatere dit varekatalog samt holde styr på priser.

Dernæst bør du få lidt mere styr på variabler og hvordan man bruger ' og ".
Avatar billede chris0905 Nybegynder
03. oktober 2009 - 14:25 #7
Hej igen.
Nu har jeg lært af jer, og jeg er kommet noget længere, og synes selv at det er ved at tage lidt form.
Jeg er dog stødt ind i et KÆMPE problem (synes jeg). Jeg har en billedviser på siden, og den vil ikke hente de links til billederne, som ligger i min DB.

Her er koden, håber i kan hjælpe mig:


<?
include("connect.php");
include("header.php");
?>
<html>
<head>
<style type="text/css" media="screen">
html, body {margin:0;padding:0;border:0;}
ul, li {margin:0;padding:0;}
img {border:none;}
#page{position:absolute;right:20px;top:150px;width:37em;border:1px solid black;padding:1em;}
#links ul {list-style:none;}
#links li {line-height:100%;display:inline;margin-left:5px;}
#pix  {width:300px;height:350px;float:left;position:relative;}
#pix img {width:250px;height:350px;}
.cl {clear:left;}

#text{position:absolute;left:80px;top:250px;width:35%;height:25%;}
#pris{position:absolute;left:20%;top:55%;}
#headline{position:absolute;left:55px;top:155px;width:40%;}
#header{position:absolute;top:;right:25%;width:50%;}
</style>
</head>
<body>
<?php

if($_GET['p'])
{
  $page = $_GET['p'];
  $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM varer WHERE url = '$page'"),0);
  if($antal)
  {
    $sidequery = mysql_query("SELECT * FROM varer WHERE url = '$page'");
    $sidedata = mysql_fetch_assoc($sidequery);

    print "<div id=headline><h1 id=\"overskrift\">".$sidedata[Navn]."</h1><hr></div>";
    print "<div id=text><p>".$sidedata[Beskrivelse]."</p></div>";
    print "<div id=pris><p>".$sidedata[Pris]." ,-</p><input type=submit value=Køb action=setcookie.php></div>";

    //Her begynder billedviseren

    print "
    <div id=page>
    <div id=pix>
    <img id=pladsholder src=".$sidedata[Billed1]." alt=Billedgalleri />
    </div>
    <div id=links>
    <ul id=pixgalleri>
        <li>
          <a tabindex=1 href=".$sidedata[Billed1].">
          <img src=".$sidedata[Billed1]." height=97></a>
        </li>
        <li>
          <a tabindex=2 href=".$sidedata[Billed2].">
          <img src=".$sidedata[Billed2]." height=97 width=80></a>
        </li>
        <li>
          <a tabindex=3 href=".$sidedata[Billed3].">
          <img src=".$sidedata[Billed3]." height=97></a>
        </li>
      </ul>
    </div>
    <div class="cl"></div>";

    //Her slutter billedviseren

  }
  else
  {
    print "<center><font color=\"red\">Siden /?p=".$page." findes ikke, kontroller venligst linket!</font></center>";
  }
}
else
{
include('title-p.php');
while ($raekke = mysql_fetch_row($resultat))
{
  echo "<b><u><a href=/webshop/produkter.php?p=".$raekke[1].">".$raekke[2]."<br></a></u></b>";
  echo "".$raekke[3]."<br>";
  echo "".$raekke[5]." Kr.<br><br><br>";
}

}

?>

</body>
</html>


Håber virkelig at I kan hjælpe mig, med dette. Giver ekstra point for besvarelse af dette "ekstra spørgsmål".
Avatar billede acore Ekspert
03. oktober 2009 - 14:51 #8
Jeg bemærker, at du konsekvent skriver

$sidedata[Billed1]

mens jeg konsekvent ville skrive

$sidedata['Billed1']

altså med anførselstegn. Jeg skal ikke kunne sige om det andet virker, men jeg tror det ikke.
Avatar billede chris0905 Nybegynder
03. oktober 2009 - 17:32 #9
Det virker!!! JJJJJUUUUUUBBBBBBBBIIIIIIIIIIIIIIIIIIIIIIIII!!!!

Tak for hjælpen!
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