0

带有日期选择器的 Web 表单,其中一个字段是 cdate ,我使用 jsdatepick 作为该字段。

<script type="text/javascript">
    window.onload = function(){
        new JsDatePick({
            useMode:2,
            target:"cdate",
            dateFormat:"%d-%M-%Y"

    };
</script>



<form method="POST" action="insert_record.php">

<tr>
 <td style="width: 143px">Call Date:
 </td>
<td style="width: 472px">
<input type=text id="cdate" name="cdate"  size=40 style="color: black;background-color:#FFFF66; width: 270px;">
</td>

表单提交 php 是

<?
$cdate=$_POST['cdate'];
$db="call";
$link = mysql_connect("localhost", "sql", "sql");
//$link = mysql_connect("localhost",$_POST['username'],$_POST['password']);
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link) or die("Select Error: ".mysql_error());
$result=mysql_query("INSERT INTO data (cdate) VALUES ('$cdate')")or die("Insert Error: ".mysql_error());
mysql_close($link);
print "Record added\n";
?>

但是,一旦提交,我会收到消息说::

注意:未定义索引:第 4 行 d:\web\apache\htdocs\callz\submit_record.php 中的 cdate

此消息仅出现在 Firefox 或 Chrome 中,在任何版本的 IE 中都可以正常工作有什么想法吗?请注意,除了 cdate 之外还有其他变量,所有这些变量都可以毫无问题地进入表中,似乎只是 datepick 之一。我已经尝试了另一个 datepick,但这并没有发生,只有 jsdatepick,但 jsdatepick 更合适。有任何想法吗?谢谢

4

1 回答 1

1

从来没有关闭你的表单标签。

所以基本上 Chrome 和 FF 会为你关闭表单标签,你会得到这个:

<form method="POST" action="insert_record.php"> </form> << NOTHING HERE!

<tr>
 <td style="width: 143px">Call Date:
 </td>
<td style="width: 472px">
<input type=text id="cdate" name="cdate"  size=40 style="color: black;background-color:#FFFF66; width: 270px;">
</td>

请不要使用mysql_*函数

尝试使用带有 PDO 或 mysqli 的准备好的函数(参见这个大红框)。

你所拥有的很容易出现巨大的 鲍比桌问题......

于 2012-07-23T14:31:09.740 回答