Ajax不会发布到PHP MYSQL
我有一个页面,使用Ajax有两个级联选择。Ajax正确地填充了第二个Select,但是当我使用PHP将数据发布到MySQL时,我得到一个错误,即由Ajax填充的字段未识别。确切的错误是 注意:未定义索引:probcode in..\input.php在线 二十一, 如果没有进行Ajax调用,并且默认的select仍然存在,那么它将进行post。它只在AJAX替换了DIV之后才会出错 我想补充一点,这就像from元素从PHP中消失一样,即使AJAX将其添加到表单中。我是否应该使用另一个PHP函数将AJAX数据发布到MySQL 我不知道Jquery,目前正在寻找一种方法来让它只使用JavaScript,因为时间和我缺乏Jquery知识,但是如果有一种简单的方法可以将Jquery添加到现有代码中,我肯定会感兴趣。我也知道数据目前进入MySQL是不安全的,这将在这之后立即得到解决。我现在正在做一个特定功能的线框 首先,两个选择Ajax不会发布到PHP MYSQL,php,javascript,mysql,ajax,forms,Php,Javascript,Mysql,Ajax,Forms,我有一个页面,使用Ajax有两个级联选择。Ajax正确地填充了第二个Select,但是当我使用PHP将数据发布到MySQL时,我得到一个错误,即由Ajax填充的字段未识别。确切的错误是 注意:未定义索引:probcode in..\input.php在线 二十一, 如果没有进行Ajax调用,并且默认的select仍然存在,那么它将进行post。它只在AJAX替换了DIV之后才会出错 我想补充一点,这就像from元素从PHP中消失一样,即使AJAX将其添加到表单中。我是否应该使用另一个PHP函数将
<tr>
<td>Problem Type</td>
<td><?php
mysql_connect("localhost", "root", "") or die("Connection Failed");
mysql_select_db("test")or die("Connection Failed");
$query = "SELECT * FROM wfprobtype ORDER BY probtype ASC";
$result = mysql_query($query);
?>
<select name="probtype" id="probtype" onchange="changeContent(this.value)">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['ID'];?>" > <?php echo $line['probtype'];?> </option>
<?php
}
mysql_close()
?>
</select>
</td>
<td>Problem: </td>
<td>
<div id="val2div">
<select name="probcode" id="probcode">
<option value="default"></option>
</select>
</div>
</td>
</tr>
发布到MySQL input.PHP
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$sql="INSERT INTO `test`.`test` (
`ID`,
`Dattime`,
`probtype`,
`probcode`
)
VALUES(
NULL,NOW(),'$_POST[probtype]','$_POST[probcode]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con); ?>
我希望此刻我只是错过了一些简单的事情。这是我第一次使用Ajax。我真的很感激此刻所有的帮助
编辑:-在我试图重写整件事之前最后一次编辑。有没有一种方法可以用Jquery解决这个问题?如果没有的话,是否有人有一个简单而肮脏的方法,可以在没有AJAX的情况下进行完整的回发
我真的很感谢那些迄今为止做出贡献的人,感谢那些有任何想法的人
提前谢谢
-D在val2.php中,select缺少closinge元素
</select>
在无休止地查看代码之后,我发现当使用IE和上面的代码时,一切都很好!问题是Firefox直接解释AJAX返回。当您插入、删除、更新表中的内容时,你应该使用mysql\u unbuffered\u query而不是mysql\u query,因为你的代码会导致明显的错误duplication@metal_fan为什么unbuffered是一个更好的解决方案。对您的问题进行快速而肮脏的修复注意:第21行的..\input.php中未定义的索引:probcode-只需在脚本顶部禁用错误报告,如错误报告0@我希望我可以,但我需要这些数据发布到Mysql。这就像在AJAX之后,表单元素从PHP中消失,即使AJAX确实将选择框带到屏幕上。感谢您指出选择框。不幸的是,这也没有改变职位。它确实占用了所有未使用ajax填充的字段。例如,如果我从未选择启动AJAX的第一个选项,它将发布默认的选择选项。它只是无法从val2.php发布值。这几乎就像输入看不到变化一样。
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$sql="INSERT INTO `test`.`test` (
`ID`,
`Dattime`,
`probtype`,
`probcode`
)
VALUES(
NULL,NOW(),'$_POST[probtype]','$_POST[probcode]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con); ?>
</select>
$sql="INSERT INTO `test`.`test` (
`ID`,
`Dattime`,
`probtype`,
`probcode`
)
VALUES(
NULL,NOW(),'{$_POST['probtype']}','{$_POST['probcode']}')";