MaedeG
Guest
Moderatorle
Das es so ohne weiteres nicht klappt, war mir schon klar. Ich hatte aber gehofft, das es irgendwie ein Script gibt, womit das gehen könnte.
Die Idee mit dem zusätzlichen <input>feld ist zwar nicht besonders hübsch, aber daür leicht machbar - Danke Salia.
Wenn ich mehrmals das gleiche Formular ausfülle, werden die bereits in ein Input-Feld eingetragenen Wörter aus dem Browser-Cache gelesen. Lässt sich diese "Funktion" irgendwie nutzen? Ich meine, dass statt Cache-Daten die Daten aus der Datenbank eingelesen werden?
me.drinkCoffee();
Was macht: enablecab ???
Aber soweit ich es sehe, verhindert das jetzt erst man nur, dass die Daten in den Cache geschrieben werden. Aber wie bekomme ich nun die Daten aus meiner Datenbank in das input-Feld?
Einfach würde ich jetzt sagen, Daten in ein Array schreiben und über eine Schleife in value="" auslesen. Aber ich wette, so klappt das nicht.
<html>
<body>
<script type="text/javascript" src="wz_tooltip.js"></script>
<script type="text/javascript">
function setValue (data)
{
document.getElementById('test').value = data;
Tip('');
UnTip();
}
</script>
<input type="text" id="test" onmouseover="TagToTip('liste', FIX, ['test', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<span id="liste" display>
<a href="#" onClick="setValue('Eintrag 1');UnTip();">Eintrag 1<a><br>
<a href="#" onClick="setValue('Eintrag 2');UnTip();";UnTip();>Eintrag 2<a><br>
<a href="#" onClick="setValue('Eintrag 3');UnTip();">Eintrag 3<a>
</span>
</body>
Moderatorle
Was macht: enablecab ???
Aber soweit ich es sehe, verhindert das jetzt erst man nur, dass die Daten in den Cache geschrieben werden. Aber wie bekomme ich nun die Daten aus meiner Datenbank in das input-Feld?
Einfach würde ich jetzt sagen, Daten in ein Array schreiben und über eine Schleife in value="" auslesen. Aber ich wette, so klappt das nicht.
<?php
/**
* method ParamPostItem($var, $duty = null, $int = null, $regex = null)
*
* @param string $var (Fild-Name 'here the name')
* @param integer $duty (check of duty 0 or 1)
* @param integer $int (check of regex 0 or 1)
* @param string $regex (check Regex 'here of regex)
* @return string
*/
public final function ParamPostItem($var, $duty = null, $int = null, $regex = null) {
if(isset($var)) {
$v = isset($_POST[$var]) ? $_POST[$var] : '';
if(isset($duty) && $duty == 1 && !$v) {
$this->msgError = 1;
$this->postName = $var;
$this->item = $var;
return false;
} elseif(isset($duty) && $duty == 1 && isset($int) && $int == 1 && $v != '' && isset($regex) && !preg_match($regex, $v, $find)) {
$this->msgError = 1;
$this->postName = $var;
$this->item = $var;
return false;
} elseif(!$duty && $v && isset($int) && isset($regex) && !preg_match($regex, $v)) {
$this->msgError = 1;
$this->postName = $var;
$this->item = $var;
return false;
} else {
return $v;
}
}
return false;
}
?>
MaedeG
Guest
Moderatorle
<?php
/*
* Beispiel Array aus DB lautet $selectArray
*/
$selectArray = mysql_fetch_array($wasauchimmer, $linkId);
/*
* aufruf als normale Funktion
* dabei zuvor das public und final entfernen!!
*/
foreach($selectArray as $k => $v) {
if(isset($k) && $k == ParamPostItem('selectname')) $selected = ' selected="selected"';
else $selected = '';
$options .= '<option value="'. $k .'"'.$selected.'>'. $v .'</option>'."\n";
}
?>
<select name="selectname">
<?php echo options; ?>
</select>
me.drinkCoffee();
@MaedeG
naja, ich hätte gedacht, im Bereich PHP und andere Scriptsprachen erübrigt sich das...
So, ich habe jetzt das erste Script von Chriss1987 richtig eingebaut und es funktioniert fast perfekt. Eigentlich sogar perfekt, weil, auf die Auswahl per Anfangsbuchstaben kann ich eigentlich verzichten.
Aber ein anderes Problem habe ich jetzt. Da ich von JavaScript noch weniger Ahnung habe wie von PHP, komme ich da gar nicht weiter.
Was muss ich machen, wenn ich in einem form-Tag mehrere solcher Listen haben will???
<html>
<body>
<script type="text/javascript" src="wz_tooltip.js"></script>
<script type="text/javascript">
function setValue (data, id)
{
document.getElementById(id).value = data;
Tip('');
UnTip();
}
</script>
<input type="text" id="test1" onmouseover="TagToTip('liste1', FIX, ['test1', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<input type="text" id="test2" onmouseover="TagToTip('liste2', FIX, ['test2', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<input type="text" id="test3" onmouseover="TagToTip('liste3', FIX, ['test3', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<span id="liste1" style="display: none;">
<b onClick="setValue('Eintrag 1', 'test1');UnTip();">Eintrag 1</b><br>
<a href="#" onClick="setValue('Eintrag 2', 'test1');UnTip();">Eintrag 2<a><br>
<a href="#" onClick="setValue('Eintrag 3', 'test1');UnTip();">Eintrag 3<a>
</span>
<span id="liste2" style="display: none;">
<a href="#" onClick="setValue('Eintrag 4', 'test2');UnTip();">Eintrag 4<a><br>
<a href="#" onClick="setValue('Eintrag 5', 'test2');UnTip();">Eintrag 5<a><br>
<a href="#" onClick="setValue('Eintrag 6', 'test2');UnTip();">Eintrag 6<a>
</span>
<span id="liste3" style="display: none;">
<a href="#" onClick="setValue('Eintrag 7', 'test3');UnTip();">Eintrag 7<a><br>
<a href="#" onClick="setValue('Eintrag 8', 'test3');UnTip();">Eintrag 8<a><br>
<a href="#" onClick="setValue('Eintrag 9', 'test3');UnTip();">Eintrag 9<a>
</span>
</body>
me.drinkCoffee();
...
...PHP:<?php /* * Beispiel Array aus DB lautet $selectArray */ $selectArray = mysql_fetch_array($wasauchimmer, $linkId); /* * aufruf als normale Funktion * dabei zuvor das public und final entfernen!! */ foreach($selectArray as $k => $v) { if(isset($k) && $k == ParamPostItem('selectname')) $selected = ' selected="selected"'; else $selected = ''; $options .= '<option value="'. $k .'"'.$selected.'>'. $v .'</option>'."\n"; } ?> <select name="selectname"> <?php echo options; ?> </select>
<?php
/*
* Beispiel Array aus DB lautet $selectArray
*/
$selectArray = mysql_fetch_array($wasauchimmer, $linkId);
/*
* aufruf als normale Funktion
* dabei zuvor das public und final entfernen!!
*/
foreach($selectArray as $k => $v) {
if(isset($k) && $k == ParamPostItem('selectname')) $selected = ' selected="selected"';
else $selected = '';
$options .= "<b onClick=\"setValue('". $v ."', 'test1');UnTip();\">". $v ."</b><br>\n";
}
?>
<html>
<body>
<script type="text/javascript" src="wz_tooltip.js"></script>
<script type="text/javascript">
function setValue (data, id)
{
document.getElementById(id).value = data;
Tip('');
UnTip();
}
</script>
<input type="text" id="test1" onmouseover="TagToTip('liste1', FIX, ['test1', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<input type="text" id="test2" onmouseover="TagToTip('liste2', FIX, ['test2', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<input type="text" id="test3" onmouseover="TagToTip('liste3', FIX, ['test3', 0, 0], STICKY, 'true');" onmouseout="UnTip()">
<span id="liste1" style="display: none;">
<?php echo options; ?>
</span>
<span id="liste2" style="display: none;">
<a href="#" onClick="setValue('Eintrag 4', 'test2');UnTip();">Eintrag 4<a><br>
<a href="#" onClick="setValue('Eintrag 5', 'test2');UnTip();">Eintrag 5<a><br>
<a href="#" onClick="setValue('Eintrag 6', 'test2');UnTip();">Eintrag 6<a>
</span>
<span id="liste3" style="display: none;">
<a href="#" onClick="setValue('Eintrag 7', 'test3');UnTip();">Eintrag 7<a><br>
<a href="#" onClick="setValue('Eintrag 8', 'test3');UnTip();">Eintrag 8<a><br>
<a href="#" onClick="setValue('Eintrag 9', 'test3');UnTip();">Eintrag 9<a>
</span>
</body>
me.drinkCoffee();
...
Das Script von Chriss1987 läuft jetzt ganz gut. Was ein wenig stört ist, dass die Fenster offen bleiben, wenn man mit der Maus wieder runter geht.
...
onmouseover="TagToTip('liste1', FIX, ['test1', 0, 0], STICKY, 'true');"
onmouseover="TagToTip('liste1', FIX, ['test1', 0, 0], STICKY, 'true', DURATION, '2500');"
Moderatorle
@saila
Mit wollen hat das leider nicht viel zu tun. Wollen will ich wie verrückt.
Das Script von gestern Abend verstehe ich zum Beispiel sofort. Liegt vielleicht auch daran, weil ich mehr oder weniger das gleiche benutze. Was aber das erste macht, ist für mich noch immer nicht zu erkennen. Aber ich habe jetzt erkannt, das es was mit Klassen zu tun hat (wie Du ja auch geschrieben hattest) und davon habe ich nicht den geringsten Schimmer .
Also was macht diese methode oder funktion. Sie prüft ob mit POST also
Was ist nun der Vorteil dieser Funktion oder Methode:PHP:<?php /* * check ist Variable vorhanden, wenn ja gebe diese zurück */ $inputName = ParamPostItem('inputName'); echo '<input type="text" name="inputName" value="'. $inputName .'" />'; ?>
Wegfall der ständigen Prüfung von Variablen mit
Erweiterbar um weitere Parameter, um z.B. zu prüfen, ob der POST[$name] auch die erlaubten Zeichensätze enthält ($regex). Oder wenn man die Funktion erweitert, kann man auch Daten aus der DB übergeben. Beispiel:PHP:<?php if(isset($_POST['inputName']) && trim($_POST['inputName']) != '') { echo 'ja Variable ist vorhanden'; } ?>
Zuerst die angepasste Methode:
Nun das Beispiel mit Daten per POST oder Datenbank-Array:PHP:<?php /** * method ParamPostItem($var, $duty = null, $int = null, $regex = null) * * @param string $var (Fild-Name 'here the name') * @param array $dbValues (Array from db-select) * @param integer $duty (check of duty 0 or 1) * @param integer $int (check of regex 0 or 1) * @param string $regex (check Regex 'here of regex) * @return string */ function ParamPostItem($var, $dbValues = null, $duty = null, $int = null, $regex = null) { if(isset($var)) { $v = isset($_POST[$var]) ? $_POST[$var] : ''; if(isset($duty) && $duty == 1 && !$v) { $this->msgError = 1; $this->postName = $var; $this->item = $var; return false; } elseif(isset($duty) && $duty == 1 && isset($int) && $int == 1 && $v != '' && isset($regex) && !preg_match($regex, $v, $find)) { $this->msgError = 1; $this->postName = $var; $this->item = $var; return false; } elseif(!$duty && $v && isset($int) && isset($regex) && !preg_match($regex, $v)) { $this->msgError = 1; $this->postName = $var; $this->item = $var; return false; } elseif(isset($dbValues) && is_array($dbValues) && isset($db[Values[$name]) && $db[Values[$name] != '') { return $dbValues[$name]; else { return $v; } } return false; } ?>
Somit werden also immer die Values eines Input-Tag übergeben und man erspart sich eine Menge an Schreibarbeit. Wichtig dabei ist allerdings, dass der Name des Input-Tag absolut identisch ist mit dem Namen des DB-Feldes!! Sonst funktioniert das eben nicht.PHP:<?php /* * array aus DB */ $dbValues = mysql_fetch_array($sql, $linkId); $inputName = ParamPostItem('inputName', $dbValues); echo '<input type="text" name="inputName" value="'. $inputName .'" />'; ?>
Die weitere Parameter sind wie folgt erklärt:
$duty = Prüfe ob Pflichtfeld, wenn ja lege ein Error.
$int = Integer (also 1) wird in Verbindung mit $regex verwendet
$regex = Prüft auf Zeichenketten. Also per preg_match. Wie die Übergabe erfolgen muss, ist in der Funktion zu erkennen.
Wenn nun diese Funktion als Methode in einer Klasse verwendet wird, kann man z.B. über eine weitere Methode Names error() auch z.B. den Input-Tag beinflussen per css oder man kann auch eine Fehlermeldung dem User übermitteln.
Willkommen auf PSD-Tutorials.de
In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.
Nächster neuer Gratisinhalt
Statistik des Forums