[英]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
参数,可以在不同的表单周围使用if
或switch
语句来显示或隐藏相应的表单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.