Avatar billede mlunde Nybegynder
05. december 2008 - 22:33 Der er 4 kommentarer og
1 løsning

PHP og HTML-frames

Hej.

Jeg har et html-dokument der ser således ud:

<html>

<frameset rows="50%,50%">

  <frame src="database.php">
  <frame name="target" src="target.html">


</frameset>

</html>

Det er delt op i en frame øverst og en nederst.


Mit database.php-script ser således ud.

<html>
<head><title>The Apples MySQL Database</title></head>
<body>
<?php
$host="***";
$user="***";
$password="***";

if(@$_GET['form'] == "yes")
{
  mysql_connect($host,$user,$password);
  mysql_select_db($_POST['database']);
  $query = stripSlashes($_POST['query']);
  $result = mysql_query($query);
  echo "Database Selected: <b>{$_POST['database']}</b><br>
        Query: <b>$query</b><h3>Results</h3><hr>";
  if($result == 0)
  {
    echo "<b>Error ".mysql_errno().": ".mysql_error().
          "</b>";
  }
  elseif (@mysql_num_rows($result) == 0)
  {
    echo("<b>Query completed. No results returned.
          </b><br>");
  }
  else
  {
  echo "<table border='1'>
          <thead>
          <tr>";
            for($i = 0;$i < mysql_num_fields($result);$i++)
            {
            echo "<th>".mysql_field_name($result,$i).
                  "</th>";
            }
  echo "  </tr>
          </thead>
        <tbody>";
          for ($i = 0; $i < mysql_num_rows($result); $i++)
          {
            echo "<tr>";
            $row = mysql_fetch_row($result);
            for($j = 0;$j<mysql_num_fields($result);$j++)
            {
              echo("<td>" . $row[$j] . "</td>");
            }
            echo "</tr>";
          }
  echo "</tbody>
        </table>";
  }
  echo "
  <hr><br>
  <form action=\"{$_SERVER['PHP_SELF']}\" method=\"POST\">
    <input type='hidden' name='query' value='$query'>
    <input type='hidden' name='database'
            value={$_POST['database']}>
    <input type='submit' name=\"queryButton\"
            value=\"New Query\">
    <input type='submit' name=\"queryButton\"
            value=\"Edit Query\">
  </form>";
  unset($form);
  exit();


@$query=stripSlashes($_POST['query']);
if (@$_POST['queryButton'] != "Edit Query")
{
  $query = " ";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>?form=yes"
      method="POST">
<table>
  <tr>
  <td align=right><b>Type in database name</b></td>
  <td><input type="text" name="database"
              value=<?php echo @$_POST['database'] ?> ></td>
  </tr>
  <tr>
  <td align="right" valign="top">
        <b>Type in SQL query</b></td>
  <td><textarea name="query" cols="60"
                rows="10"><?php echo $query ?></textarea>
  </td>
  </tr>
  <tr>
  <td colspan="2" align="center"><input type="submit"
      value="Submit Query"></td>
  </tr>
</table>
</form>
<hr>
</body></html>

Mit spørgsmål er: Hvor skal jeg sætte min kode ind for at outputtet når jeg trykker SUBMIT i den øverste frame, kommer ned i den nederste frame. OG når jeg trykker "NEW QUERY" eller "EDIT QUERY", hvordan får jeg den så til at gå tilbage til den øverste frame?

Hilsen Michael
Avatar billede coderdk Praktikant
05. december 2008 - 23:54 #1
<form target="target"...

måske du skulle give den et andet navn end target, det kan muligvis skabe problemer ;)
Avatar billede mlunde Nybegynder
06. december 2008 - 01:04 #2
Den kan jeg nemt ændre :-)
Hvor præcist skal jeg sætte det ind henne?
Avatar billede coderdk Praktikant
06. december 2008 - 01:07 #3
<form target="target" action="<?php echo $_SERVER['PHP_SELF'] ?>?form=yes"
      method="POST">

Action skal ændre, så koden bliver kørt i target ;P
Avatar billede olebole Juniormester
06. december 2008 - 22:05 #4
<ole>

- og du gør klogt i ikke at vælge navne, der i forvejen bruges til andet. Brug et andet navn end 'target'  ;o)

/mvh
</bole>
Avatar billede mlunde Nybegynder
25. juli 2010 - 07:22 #5
Tråd slut
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