繁体   English   中英

如何在一个HTML文档中为每种表单创建单独的Javascript窗口

[英]How do I create separate Javascript windows for each form in one HTML document

我正在尝试学习一些php / html及其附带的内容。 我以本教程作为开始。 它是德语的,所以我不确定该链接对您有多有用。

它本身没有问题,该教程本身基本上包含创建3个php页的内容-每个页面都执行以下操作之一:使用mysql删除,插入,更新数据库中不同表上的数据。 对于每个动作,通过js函数打开一个简单的窗口来操作sql语句。 当我尝试使所有类型的处理数据(插入/删除/更新)在所有php页/表上均可用时,我的问题就出现了。 我的第一个尝试是使插入功能可用于“ hersteller”表,该表在技术上是可行的,但是每次我按下运行.js的按钮之一并打开一个窗口时,它都会显示两个html形式,而不是我想要的形式显示。 我似乎无法摆脱它。 我知道我可以将html表单放在另一个php页面中,或者(可能吗?)更改表单的可见性,但是我真的很想知道为什么它不起作用。 任何帮助表示赞赏。

tl; dr:通过js创建一个窗口,我想根据单击的按钮来显示html表单,但是它总是在php页面中显示所有/两个htmls表单。

这是一些代码

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>PHP / MySQL - Tutorial 1</title>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
  <link rel="stylesheet" href="files/cms.css" type="text/css" />
  <script type="text/JavaScript" src="files/menue.js"></script>
</head>
<body>
<div class="navi">
  <h1>Navigation</h1>
  <ul>
    <li><a href="index.php?tabelle=hersteller">Hersteller</a></li>
    <li><a href="index.php?tabelle=produkte">Produkte</a></li>
    <li><a href="index.php?tabelle=kunden">Kunden</a></li>
  </ul>
</div>
<?php 
require ('inc/db.inc.php');

if ($_GET['tabelle'])
{
  switch ($_GET['tabelle'])
    {
case 'hersteller': $table = 'hersteller';
                       $field = 'zulieferer';
                       break;
case 'produkte'  : $table = 'produkt';
                   $field = 'produkt';
                   break;
case 'kunden'    : $table = 'kunde';
                   $field = 'doktor';
                   break;
default          : die ('Manipulationsversuch!');
}
$query = 'SElECT id, '.$field.' AS list FROM '.$table;

$result = mysql_query ($query) or die (mysql_error());
while ($row = mysql_fetch_assoc ($result)) {
    $list[] = $row;
}

include ('inc/functions.inc.php');
$code = '<div class="ausgabe"><h1>'.ucfirst($_GET['tabelle']).'</h1>';

$code .= 
        '<p class="menue">
            <a href="#"
            onclick="fenster('."'".$_GET['tabelle']."',
            '".$_GET['tabelle']."'".');">
            Neuen Datensatz einpflegen
            </a>
        </p>';
$code .= showList ($list, $_GET['id']);
$code .= '</div>';
echo $code;
print_r ($list);
}
?>'
</body>
</html>

menue.js

  function fenster1(datei, param)
  {
    window.open('data/' + datei + '.php?tabelle=' + param + '&type=insert', datei, 'scrollbars=yes, rezisable=yes, width=500, height=300');
  }
  function fenster2(datei, param) {
      window.open('data/' + datei + '.php?tabelle=' + param, datei, 'scrollbars=yes, rezisable=yes, width=500, height=300');
  }   

functions.inc.php

<?php
  function showList ($list, $id) {
        for ($i = 0; $i < count ($list); $i++) {
            $ausgabe .= '<p>
                            <a href="#" onclick="fenster2('."'".$_GET['tabelle']."','".$_GET['tabelle'].
                                '&id= '.$list[$i]['id']."'".');">
                                Ändern
                            </a>';

            $ausgabe .= '<a href="#" onclick="fenster2('."'".$_GET['tabelle']."','".$_GET['tabelle'].
                            '&id='.$list[$i]['id']."'".');">
                            Loeschen
                        </a>';
            if ($id == $list[$i]['id']) {
                $ausgabe .= '<span class="show">';
            }
            $ausgabe .= $list[$i]['list'];
            if ($id == $list[$i]['id']) {
                $ausgabe .= '</span>';
            }
            $ausgabe .= '</p>';
        }
        return $ausgabe;
    }
?>

hersteller.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Hersteller</title>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        <link rel="stylesheet" href="../files/cms.css" type="text/css" />
    </head>
    <?php
    require ('../inc/db.inc.php');

    if ($_GET['id'] != NULL) {
        $query = 'SELECT * FROM hersteller WHERE id = ' . $_GET['id'];
        $result = mysql_query($query) or die(mysql_error());
        $hersteller = mysql_fetch_row($result);

        echo $query . "\n";
    } else if ($_POST['update']) {
        $query = 'UPDATE hersteller SET
                zulieferer = \'' . $_POST['zulieferer'] . '\',
                telefon = \'' . $_POST['telefon'] . '\',
                fax = \'' . $_POST['telefax'] . '\',
                strasse = \'' . $_POST['strasse'] . '\',
                plz = \'' . $_POST['plz'] . '\',
                ort = \'' . $_POST['ort'] . '\'
                WHERE
                id = ' . $_POST['id'];

        echo $query . "\n";

        $update = mysql_query($query) or die(mysql_error());
    }

    echo '<body';
    if ($update['update']) {
        echo ' onload="window.opener.location.href=' . "'" . '../index.php' .
        '?tabelle=' . $_GET['tabelle'] . '&id=' . $_POST['id'] .
        "'" . '; window.close();"';
    }
    echo '>';

#require ('../inc/db.inc.php');

    if ($_POST['datensatz']) {

        $query = 'INSERT INTO hersteller VALUES 
          (' . "'','" .
                $_POST['zulieferer'] . "','" .
                $_POST['telefon'] . "','" .
                $_POST['fax'] . "','" .
                $_POST['strasse'] . "','" .
                $_POST['plz'] . "','" .
                $_POST['ort'] . "'" .
                ')';

        echo $query . "\n";

        $result['datensatz'] = mysql_query($query) or die(mysql_error());
        echo $query . "\n";
    }

    echo '<body';
    if ($result['datensatz']) {
        echo ' onload="window.opener.location.href=' . "'" . '../index.php' .
        '?tabelle=' . $_GET['tabelle'] . "'" . '; window.close();"';
    }
    echo '>';
    echo $_GET['type'];

    switch (isset($_GET['type'])) {
        case 'insert': echo
            '<form action="hersteller.php?tabelle='.$_GET['tabelle'].'&type=insert" method="post">
                <p>
                    <label for="zulieferer">Zulieferer</label>
                    <input type="text" name="zulieferer" class="feld" />
                </p>
                <p>
                    <label for="telefon">Telefon</label>
                    <input type="text" name="telefon" class="feld" />
                </p>
                <p>
                    <label for="telefax">Telefax</label>
                    <input type="text" name="fax" class="feld" />
                </p>
                <p>
                    <label for="strasse">Straße</label>
                    <input type="text" name="strasse" class="feld" />
                </p>
                <p>
                    <label for="plz">PLZ, Ort</label>
                    <input type="text" name="plz" class="feld" style="width: 60px;" />
                    <input type="text" name="ort" class="feld" style="width: 230px;" />
                </p>
                <p style="text-align: center">
                    <input type="hidden" name="datensatz" value="'.$_GET['id'].'" />
                    <input type="submit" value="Eingeben" />
                </p>
            </form>';
        case 'update': echo 
            '<form action="hersteller.php?tabelle='.$_GET['tabelle'].'&id = '.$_POST['id'].'&type=update" method="post"> 
                <p>
                    <label for="zulieferer">Zulieferer</label>
                    <input type="text" name="zulieferer" class="feld" 
                    value="'.$hersteller[1].'" />
                </p>
                <p>
                    <label for="telefon">Telefon</label>
                    <input type="text" name="telefon" class="feld" value="'.§hersteller[2].'" />
                </p>
                <p>
                    <label for="telefax">Telefax</label>
                    <input type="text" name="telefax" class="feld" value="'.$hersteller[3].'" />
                </p>
                <p>
                    <label for="strasse">Strasse</label>
                    <input type="text" name="strasse" class="feld" value="'.$hersteller[4].'" />
                </p>
                <p>
                    <label for="plz">PLZ, Ort</label>
                    <input type="text" name="plz" class="feld" style="width: 60px;" value="'.$hersteller[5].'" />
                    <input type="text" name="ort" class="feld" style="width: 230px;" value="'.$hersteller[6].'" />
                </p>
                <p style="text-align: center">  
                    <input type="hidden" name="id" value="'.$_GET['id'].'" />
                    <input type="submit" name="update" value="Einggeben" />
                </p>
            </form>';    
    }

?>



</body>
</html>

很抱歉,长期发布的帖子随时告诉您什么是过时的/缺失的。 再次-任何帮助将不胜感激。

编辑:将文档更改为新版本。

首先,您的教程似乎已经很老了:它使用了不推荐使用的mysql_*函数(已经有一段时间了)。 您可能需要寻找更好的教程。
对于您的问题:在hersteller.php ,没有什么可以告诉文件要显示哪种form以及要隐藏哪种form
基于GET参数,可以在不同的表单周围使用ifswitch语句来显示或隐藏相应的表单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM