TinyBox Form Bug

时间:2011-11-02 09:59:24

标签: php javascript html

我尝试使用tinybox Javascript。

现在我将尝试在提交时使用它,但我不知道如何!?

<div id="add">
<form name="addVoc" action="javascript:TINY.box.show('system/import.php',1,300,150,1);" method="post" onsubmit='return checkForm();'>
    <img src="images/gb.png" width="13px" height="8px"> English: <input type="text" name="English" class="addBox" />
    <img src="images/de.png" width="13px" height="8px"> German: <input type="text" name="German" class="addBoxD" /><br><br>
    <img src="images/icon_hinweis.gif" width="10px" height="10px"> Add Voc <input type="submit" class="sbutton" value="Add"/>
</form>

现在它显示了我的小盒子,但没有任何反应,盒子是空的。

这是我的JS checkForm()

    function checkForm(){

        if (document.forms["addVoc"].English.value==""){
            alert('Upps!'); 
            return false;
        }
        if (document.forms["addVoc"].German.value==""){
            alert('Upps!');
            return false;
        }
return true;
    }

在我的Html Head中,我链接了Tinybox CSS和JS

<link rel="stylesheet" type="text/css" href="css/tinybox.css" />
<script type="text/javascript" src="js/tinybox.js"></script>

这是import.php:

<?php
include 'include/connect.php';

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if (!$db_link)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("vokabel", $db_link);

$sql="INSERT INTO word (Englisch, Deutsch)
VALUES
('$_POST[Englisch]','$_POST[Deutsch]')";

if (!mysql_query($sql,$db_link))
  {
  die('Error: ' . mysql_error());
  }
echo "Vokabel wurde hinzugefügt!";

mysql_close($db_link)
?> 

我是JS的新手,我希望有人可以帮助我...没有tinybox它可以很好地运作

非常感谢mutch

1 个答案:

答案 0 :(得分:1)

因为你有

<input type="text" name="Deutsch" class="addBoxD" />

我怀疑

if (document.forms["addVoc"].German.value==""){

应该阅读

if (document.forms["addVoc"].Deutsch.value==""){

另外,你应该添加

return true;

checkForm()函数的最后一行。

我怀疑其中任何一个都能修复你的tinybox问题 - 这很可能是因为system/import.php没有输出任何内容。

在浏览器中加载system/import.php,确保获得所需的输出。如果您这样做,请确保system/import.php是从当前页面到import.php的正确相对路径。如果所有这些都是正确的,请修改问题以包含import.php的源代码。

说了这么多,将这个小框称为表单的action属性似乎有点奇怪 - 你确定这是你想要做的吗?你究竟想在这里实现什么目标?

修改

试试这个:

<强> HTML

<div id="add">
<form name="addVoc" action="javascript:void(0);" onsubmit="return checkForm();">
    <img src="images/gb.png" width="13px" height="8px"> Englisch: <input type="text" name="Englisch" class="addBox" />
    <img src="images/de.png" width="13px" height="8px"> Deutsch: <input type="text" name="Deutsch" class="addBoxD" /><br><br>
    <img src="images/icon_hinweis.gif" width="10px" height="10px"> Add Voc <input type="submit" class="sbutton" value="Add"/>
</form>

<强>的Javascript

function checkForm(){

    if (document.forms["addVoc"].Englisch.value=="") {
        alert('Upps!'); 
        return false;
    }
    if (document.forms["addVoc"].Deutsch.value==""){
        alert('Upps!');
        return false;
    }

    TINY.box.show('system/import.php?Englisch='+document.forms["addVoc"].Englisch.value+'&Deutsch='+document.forms["addVoc"].Deutsch.value,1,300,150,1);

    return false;

}

<强> PHP

<?php

  include 'include/connect.php';

  if (!$db_link = mysql_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT)) {
    die('Konnte keine Verbindung: ' . mysql_error());
  }
  mysql_select_db("vokabel", $db_link);

  $sql = "INSERT INTO `word` 
            (`Englisch`, `Deutsch`)
          VALUES
            ('".mysql_real_escape_string($_GET['Englisch'])."','".mysql_real_escape_string($_GET['Deutsch'])."')";

  if (!mysql_query($sql,$db_link)) {
    die('Fehler: ' . mysql_error());
  }

  echo "Vokabel wurde hinzugefügt!";

  mysql_close($db_link)

?>

另一个编辑

如果您使用的是Tinybox 2,请更改此行:

TINY.box.show('system/import.php?Englisch='+document.forms["addVoc"].Englisch.value+'&Deutsch='+document.forms["addVoc"].Deutsch.value,1,300,150,1);

对此:

TINY.box.show({url:'system/import.php',post:'Englisch='+document.forms["addVoc"].Englisch.value+'&Deutsch='+document.forms["addVoc"].Deutsch.value,width:300,height:150});

并将$_GETimport.php的两次出现更改为$_POST