Dobrý den, mám problém s vkládáním záznamu do databáze. Když do textového pole napíšu text,.... tak se to do databáze zapíše bez problémů. Jenže když do textového pole vložím obrázek nebo odkaz pomocí tlačítka udělanáho v JS, tak to do databáze nevloží. Pokud obrázek napíšu ručně, tak není problém. Taktéž s odkazem.
SOUBORY:
tvorba_clanku.php
<?php
$zobraz_formular = true;
if (isset($_POST['vytvorit'])) {
if (trim($_POST['nazev']) == "") {
$errors[] = "Název je povinný údaj";
}
if (trim($_POST['obsah']) == "") {
$errors[] = "Text je povinný údaj";
}
if (!isset ($errors)) {
echo"Článek byl vytvořen";
$zobraz_formular = false;
$autor = $_SESSION['username'];
$timezone = new DateTimeZone("Europe/Prague");
$date = new DateTime();
$date->setTimezone($timezone);
$datum = $date->format('d.m.Y H:i');
$nazev = $_POST['nazev'];
$obsah = $_POST['obsah'];
$picture = $_POST['obrazek'];
$sql = "insert into clanky (nazev, datum, autor, obsah, image) values ('$nazev', '$datum', '$autor', '$obsah', '$picture')";
$res = mysql_query($sql);
} else {
$zobraz_formular = true;
foreach ($errors as $error){
echo $error."<br />";
}
}
}
if($zobraz_formular==true) { include("tvorba_formular.php"); }
if($zobraz_formular==false) {include("clanek_inc.php"); }
?>
tvorba_formular.php:
<form method="post" name="tvorba" action="<?php /*if(!isset($_POST['vytvorit']))echo $PHP_SELF;*/ ?>">
<table>
<tr><td>Nazev</td></tr>
<tr><td><input type="text" name="nazev" class="nazev"></td></tr>
<tr><td>Obrázek k článku</td></tr>
<tr><td><?php
$sql_vypisobrazky = "SELECT id, soubor, nazev from images";
$res_vypisobrazky = mysql_query($sql_vypisobrazky) or die("Chyba. Nelze provést akci! Prosím kontaktujte administrátora");
echo"<select name='obrazek'>";
echo"<option value='preview.jpg'>DEFAULT";
while ($zaznam_vypisobrazky = mysql_fetch_array($res_vypisobrazky)) {
echo"<option value='".$zaznam_vypisobrazky['soubor']."'>".$zaznam_vypisobrazky['soubor'];
}
echo"</select>";
?></td></tr>
<tr><td>Text</td></tr>
<tr><td>
<a href="javascript:insertAtCursor(obsah, '<b>', '</b>');"> <b>B</b> </a>
<a href="javascript:insertAtCursor(obsah, '<i>', '</i>');"> <i>I</i> </a>
<a href="javascript:insertAtCursor(obsah, '<u>', '</u>');"> <u>U</u> </a>
<a href="javascript:insertAtCursor(obsah,'<a href=\'example.com\'>text odkazu</a>','')"> Odkaz</a>
<a href="javascript:insertAtCursor(obsah,'<img src=\'example.com/image.jpg\' target=\'_blank\' />','')">Obrázek</a>
</td></tr>
<tr><td><textarea name="obsah" id="obsah"></textarea></td></tr>
<tr><td><input type="submit" name="vytvorit" value="Vytvorit clanek"></td></tr>
</table>
</form>
javascript - kód pro vložení:
<script language="javascript" type="text/javascript">
// http://www.alexking.org - LGPL
function insertAtCursor(myField, prefix, postfix) {
var re = new RegExp("^(.*\\S)(\\s*)$");
myField.focus();
//IE support
if (document.selection) {
sel = document.selection.createRange();
var selection = sel.text;
var wasEmpty = (selection == "");
var space = "";
if (!wasEmpty) {
var matches = selection.match(re);
if (matches) {
selection = RegExp.$1;
space = RegExp.$2;
}
}
sel.text = prefix+selection+postfix+space;
sel.collapse(false);
if (wasEmpty) {
sel.moveEnd('character',-(prefix.length+1))
}
sel.select();
}
//MOZILLA/NETSCAPE support
else {
if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var selection = myField.value.substring(startPos, endPos);
var wasEmpty = (startPos == endPos);
var space = "";
if (!wasEmpty) {
var matches = selection.match(re);
if (matches) {
selection = RegExp.$1;
space = RegExp.$2;
}
}
myField.value = myField.value.substring(0, startPos)
+ prefix+selection+postfix+space
+ myField.value.substring(endPos, myField.value.length);
var newPosition;
if (wasEmpty) {
newPosition = startPos+prefix.length;
} else {
newPosition = startPos+prefix.length+selection.length+postfix.length+space.length;
}
myField.setSelectionRange(newPosition, newPosition);
} else {
myField.value += prefix+postfix;
myField.setSelectionRange(startPos+prefix.length, startPos+prefix.length);
}
}
}
</script>
OMLOUVÁM SE, ŽE JE TOHO TOLIK, ale nevím, kde je chyba, tak jsem to radši hodil celé. Moc děkuji za odpovědi.