Hallo Forum,
ich habe ein Formular, um einen Datenbankeintrag zu erstellen.
Hier werden zuerst Daten eingegeben, und dann bei klick auf einen Button ein weiteres template geladen, in dem die Konfiguration des Datensatzes erfolgen soll.
Hier ist der Code für das Template "einheit_neu.htm"
Beim Klicken auf Speichern soll nun für jedes ausgewählte element in dem Select eine neue Tabelle erstellt werden...
hier der code für das Template einheit_konf.htm
Das klappt auch wunderbar....
Jetzt aber mein Problem: in der konfiguration werden ja nun für jedes System OK-Schaltflächen angezeigt. Bei Klick auf eine möchte ich gerne die Einstellungen aus dem Formular in eine DB schreiben, OHNE dass dabei die Seite aktualisiert wird. Es soll sich nur der button in 'erledigt' oder sowas ändern, da ich ja mehrere Systeme haben kann, die ich einzeln in die Datenbank schreiben möchte.
Kompliziert und unübersichtlich, aber ich hoffe, es kann mir jemand einen Tip geben...
lg Micha
ich habe ein Formular, um einen Datenbankeintrag zu erstellen.
Hier werden zuerst Daten eingegeben, und dann bei klick auf einen Button ein weiteres template geladen, in dem die Konfiguration des Datensatzes erfolgen soll.
PHP:
<?php
if(!defined('pkFRONTEND') || pkFRONTEND!='public')
die('Direct access to this location is not permitted.');
if(!getrights('designer'))
{ pkEvent('access_refused'); return;}
pkLoadLang('status');
print_r($_POST);
if(isset($_GET['action']) and $_GET['action']=="new")
{
$display=" style=\"display:inline;\"";
$diskonf=" style=\"display:none;\"";
$getSystem=$SQL->query("SELECT
NAME
FROM tsystem
GROUP BY NAME
");
if (mysql_num_rows($getSystem)>=1)
{
$nSys = "<select name=\"nSystem[]\" size=\"" . mysql_num_rows($getSystem) . "\" multiple=\"multiple\">";
while ($row = mysql_fetch_array($getSystem))
{
$nSys .= "<option value=\"" . $row['NAME'] . "\">" . $row['NAME'] . "</option>";
}
$nSys .= "</select>";
}
eval("\$site_body = \"".pkTpl("einheit_neu")."\";");
}
Hier ist der Code für das Template "einheit_neu.htm"
HTML:
<link rel="stylesheet" type="text/css" href="css/status.css">
<table border="0" cellpadding="0" cellspacing="0" width="100%" >
<tr>
<td class="heads" align="left">Neue Einheit anlegen...</td>
<td class="heads" align="right" nowrap="nowrap"><a href="javascript:history.back()"><img src="images/button/back.gif" border="0" title="zurück" align="absmiddle"></a></td>
</tr>
</table>
<br>
<table border="0" cellpadding="0" cellspacing="2" width="70%" align="center">
<tr>
<td width="100%">
<form name="einheitneu" method="post" action="?path=einheit_neu">
<table class="status" width="100%" align="left" cellpadding="5" cellspacing="0" border="1">
<tr>
<td class="status">Einheit-Name:<br><span class="statsmall">(Bsp: FGS Bayern)</span></td><td class="statush"><input type="text" name="nName" size="50" value="$nName"></td>
</tr>
<tr>
<td class="status">Typ-Klasse:</td><td class="statush"><input type="text" name="nKlasse" size="50" value="$nKlasse"></td>
</tr>
<tr>
<td class="status">Standort:</td><td class="statush"><input type="text" name="nStandort" size="50" value="$nStandort"></td>
</tr>
<tr>
<td class="status">Systeme:<br><span class="statsmall">(mehrere Syteme mit STRG + Mausklick auswählen)</span></td><td class="statush">$nSys</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" name="save" value=" speichern " $display>
<input type="hidden" name="action" value="senden" />
<input type="reset" value=" abbrechen " $display>
</td>
</tr>
</table>
</form>
<div align="center" $diskonf><br><b>Konfiguration festlegen:<br></div>
$einh_konf
</td>
</tr>
</table>
Beim Klicken auf Speichern soll nun für jedes ausgewählte element in dem Select eine neue Tabelle erstellt werden...
PHP:
elseif (isset($_POST['action']) AND $_POST['action']=="senden")
{
if (isset($_POST['nName']) AND isset($_POST['nKlasse']) AND isset($_POST['nStandort']) AND isset($_POST['nSystem']) AND
($_POST['nName']!="") AND ($_POST['nKlasse']!="") AND ($_POST['nStandort']!="") AND (count($_POST['nSystem'])>=1))
{
$getEinheit=$SQL->query("SELECT
EINHEIT
FROM teinheiten
GROUP BY EINHEIT
");
$num_rows=mysql_num_rows($getEinheit);
$vI=0;
while($vErg=mysql_fetch_array($getEinheit))
{
$arrEinheit[$vI]=strtolower($vErg['EINHEIT']);
$vI++;
}
$getSystem=$SQL->query("SELECT
NAME
FROM tsystem
GROUP BY NAME
");
$nName = $_POST['nName'];
if (in_array(strtolower($nName), $arrEinheit))
{
$message = "Die Einheit ist schon vorhanden!";
eval("\$site_body = \"".pkTpl("error_template")."\";");
}
else
{
$nKlasse = $_POST['nKlasse'];
$nStandort = $_POST['nStandort'];
if (mysql_num_rows($getSystem)>=1)
{
$nSys = "<select name=\"nSystem[]\" size=\"" . mysql_num_rows($getSystem) . "\" multiple=\"multiple\">";
while ($row = mysql_fetch_array($getSystem))
{
if (in_array($row['NAME'],$_POST['nSystem'])) { $nSys .= "<option value=\"" . $row['NAME'] . "\" selected=\"selected\">" . $row['NAME'] . "</option>"; }
else { $nSys .= "<option value=\"" . $row['NAME'] . " \">" . $row['NAME'] . "</option>"; }
}
$nSys .= "</select>";
}
for($i=0; $i<count($_POST['nSystem']); $i++)
{
$cSys = $_POST['nSystem'][$i];
$getVersion=$SQL->query("SELECT
VERSION
FROM tsystem
WHERE NAME = '" . $_POST['nSystem'][$i] . "'
");
if (mysql_num_rows($getVersion)>=1)
{
$nVer = "<select name=\"cVersion\" size=\"1\">";
while ($row = mysql_fetch_array($getVersion))
{
$nVer .= "<option value=\"" . $row['VERSION'] . "\">" . $row['VERSION'] . "</option>";
}
$nSys .= "</select>";
}
$nStat = "<select name=\"cStatus\" size=\"1\">";
$nStat .= "<option value=\"0\">" . pkGetLang('0') . "</option>";
$nStat .= "<option value=\"1\">" . pkGetLang('1') . "</option>";
$nStat .= "<option value=\"2\">" . pkGetLang('2') . "</option>";
$nStat .= "<option value=\"3\">" . pkGetLang('3') . "</option>";
$nStat .= "<option value=\"4\">" . pkGetLang('4') . "</option>";
$nStat .= "</select>";
eval("\$einh_konf .= \"".pkTpl("einheit_konf")."\";");
}
if ($display=" style=\"display:inline;\"") { $display = " style=\"display:none;\""; }
if ($diskonf= " style=\"display:none;\"") { $diskonf =" style=\"display:inline;\""; }
eval("\$site_body = \"".pkTpl("einheit_neu")."\";");
}
}
else
{
$message = "Es müssen alle Felder ausgefüllt werden!";
eval("\$site_body= \"".pkTpl("error_template")."\";");
}
}
hier der code für das Template einheit_konf.htm
HTML:
<table class="status" width="100%" align="left" cellpadding="5" cellspacing="0" border="1">
<tr>
<form action="?path=einheit_neu" method="post">
<td class="status" width="80">System:</td><td class="statush"><input type="text" name="cSys" size="20" value="$cSys" readonly="readonly"></td>
<td class="status" width="20">Version:</td><td class="statush" width="100">$nVer</td>
<td class="status" width="20">Status:</td><td class="statush" width="10">$nStat</td>
<td class="status" width="20" align="center">
<input type="submit" value="OK" name="action">
<input type="hidden" name="kEinheit" value=$nName>
<input type="hidden" name="kKlasse" value=$nKlasse>
<input type="hidden" name="kStandort" value=$nStandort>
<input type="hidden" name="kSystem" value=$cSys>
</td>
</form>
</tr>
</table>
<p height="10px"> </p>
Das klappt auch wunderbar....
Jetzt aber mein Problem: in der konfiguration werden ja nun für jedes System OK-Schaltflächen angezeigt. Bei Klick auf eine möchte ich gerne die Einstellungen aus dem Formular in eine DB schreiben, OHNE dass dabei die Seite aktualisiert wird. Es soll sich nur der button in 'erledigt' oder sowas ändern, da ich ja mehrere Systeme haben kann, die ich einzeln in die Datenbank schreiben möchte.
Kompliziert und unübersichtlich, aber ich hoffe, es kann mir jemand einen Tip geben...
lg Micha