Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax不会发布到PHP MYSQL_Php_Javascript_Mysql_Ajax_Forms - Fatal编程技术网

Ajax不会发布到PHP 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函数将

我有一个页面,使用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是不安全的,这将在这之后立即得到解决。我现在正在做一个特定功能的线框

首先,两个选择

            <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']}')";