Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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
javascript表单和Django有问题_Javascript_Django_Post_Django Csrf - Fatal编程技术网

javascript表单和Django有问题

javascript表单和Django有问题,javascript,django,post,django-csrf,Javascript,Django,Post,Django Csrf,我浏览了一下,发现了一些和我类似的帖子,但我所有的东西似乎都在正常工作,所以我被难倒了 我有一个javascript代码片段,允许用户从两个建筑中选择一个,然后根据使用的建筑给出一组不同的选项。这是使用post提交按钮。Everywhere都说它与{%csrf_token%}有关,但我已经阅读了表单中的内容,并将中间件包含在settings.py中。如果有区别,在同一页上也会有一个get请求 形式 <form id="formname" name="formname" method="PO

我浏览了一下,发现了一些和我类似的帖子,但我所有的东西似乎都在正常工作,所以我被难倒了

我有一个javascript代码片段,允许用户从两个建筑中选择一个,然后根据使用的建筑给出一组不同的选项。这是使用post提交按钮。Everywhere都说它与{%csrf_token%}有关,但我已经阅读了表单中的内容,并将中间件包含在settings.py中。如果有区别,在同一页上也会有一个get请求

形式

<form id="formname" name="formname" method="POST" action="">{% csrf_token %}
    <table width="50%" border="0" cellspacing="0" cellpadding="5">
        <tr>
            <td width="41%" align="right" valign="middle">Category :</td>
            <td width="59%" align="left" valign="middle">
                <select name="category" id="category" onchange="javascript: dropdownlist(this.options[this.selectedIndex].value);">
                    <option value="">Select Building</option>
                    <option value="Marcus">Marcus</option>
                    <option value="Pettit">Pettit</option>
                </select>
            </td>
        </tr>
        <tr>
            <td align="right" valign="middle">Location :</td>
            <td align="left" valign="middle">
                <script type="text/javascript" language="JavaScript">
                    document.write('<select name="subcategory"><option value="">Select Location</option>   </select>')
                </script>
                <noscript>
                    <select name="subcategory" id="subcategory">
                        <option value="">Select Location</option>
                    </select>
                </noscript>
            </td>
        </tr>
        <tr>
            <td>
                <td align="left" valign="middle">
                    <input value="Inventory Safety Log" type="submit">
                </td>
        </tr>
    </table>
</form>
{%csrf\u令牌%}
类别:
选择建筑物
马库斯
佩蒂特
地点:
document.write('选择位置')
选择位置
Javascript

<script language="javascript" type="text/javascript">
function dropdownlist(listindex) {

    document.formname.subcategory.options.length = 0;
    switch (listindex) {

        case "Marcus":
            document.formname.subcategory.options[0] = new Option("Select Location", "");
            document.formname.subcategory.options[1] = new Option("Chemical Room", "Chemicals");
            document.formname.subcategory.options[2] = new Option("Supply Room", "Supplies");
            document.formname.subcategory.options[3] = new Option("Gas Storage G205", "G205");
            document.formname.subcategory.options[4] = new Option("In-Organic Sub Fab G230", "G230");
            document.formname.subcategory.options[5] = new Option("Gas Bunker", "Gas Bunker");
            break;
        case "Pettit":
            document.formname.subcategory.options[0] = new Option("Select Location", "");
            document.formname.subcategory.options[1] = new Option("Chemical Room", "Chemicals");
            document.formname.subcategory.options[2] = new Option("Supply Room", "Supplies");
            document.formname.subcategory.options[3] = new Option("Utility Chase #19", "19");
            document.formname.subcategory.options[4] = new Option("Utility Chase #25", "25");
            document.formname.subcategory.options[5] = new Option("Utility Chase #29", "29");
            document.formname.subcategory.options[6] = new Option("Utility Chase #30", "30");
            document.formname.subcategory.options[7] = new Option("Utility Chase #36", "36");
            document.formname.subcategory.options[8] = new Option("Utility Chase #44", "44");
            document.formname.subcategory.options[9] = new Option("Gas Cage", "Gas Cage");
            document.formname.subcategory.options[10] = new Option("Bunker", "Bunker");
            break;
    }
    return true;
}

</script>

函数dropdownlist(列表索引){
document.formname.subcategory.options.length=0;
开关(列表索引){
“马库斯”案:
document.formname.subcategory.options[0]=新选项(“选择位置”,”);
document.formname.subcategory.options[1]=新选项(“化学室”、“化学品”);
document.formname.subcategory.options[2]=新选项(“供应室”、“供应”);
document.formname.subcategory.options[3]=新选项(“储气G205”、“G205”);
document.formname.subcategory.options[4]=新选项(“在有机子工厂G230中”、“G230”);
document.formname.subcategory.options[5]=新选项(“煤气仓”、“煤气仓”);
打破
“Pettit”案:
document.formname.subcategory.options[0]=新选项(“选择位置”,”);
document.formname.subcategory.options[1]=新选项(“化学室”、“化学品”);
document.formname.subcategory.options[2]=新选项(“供应室”、“供应”);
document.formname.subcategory.options[3]=新选项(“实用工具追逐19”、“19”);
document.formname.subcategory.options[4]=新选项(“实用工具追逐25”、“25”);
document.formname.subcategory.options[5]=新选项(“实用工具追逐29”、“29”);
document.formname.subcategory.options[6]=新选项(“实用工具追逐#30”、“30”);
document.formname.subcategory.options[7]=新选项(“实用工具追逐#36”、“36”);
document.formname.subcategory.options[8]=新选项(“实用工具追逐#44”,“44”);
document.formname.subcategory.options[9]=新选项(“气罐”、“气罐”);
document.formname.subcategory.options[10]=新选项(“存储库”、“存储库”);
打破
}
返回true;
}
感谢您的任何意见、建议、提示或见解


主要问题是,当我尝试发布表单时,它会将我带到csrf验证失败页面。

由于动态篡改表单数据,您会遇到问题。你需要使用它来干净地处理它。现在,您可以使用decorator作为临时解决方法,因为您在运行中篡改表单数据而遇到问题。你需要使用它来干净地处理它。现在,您可以使用decorator作为临时解决方案

那么,问题是什么?一个是旁注-使用django表单-当我尝试发布表单时,你的生活会变得非常简单,它会将我带到csrf验证失败页面。很抱歉,我会编辑原始的帖子,把它也包括进去。我会的,但我对django真的很陌生,而且已经非常紧张,几乎超过了最后期限。可以说是被扔到了公共汽车下面。但一旦这一切结束,我计划以后再看一遍,这样我就可以完全掌握django了。我的猜测是,既然您在加载文档后更改了表单,那么您就遇到了问题。你可以在视图中使用decorator,看看它现在是否有效。是的,这就是我想要弄明白的。是的,这很有效。介意把它作为一个答案,这样我可以选择它吗?那么,问题是什么?一个是旁注-使用django表单-当我尝试发布表单时,你的生活会变得非常简单,它会将我带到csrf验证失败页面。很抱歉,我会编辑原始的帖子,把它也包括进去。我会的,但我对django真的很陌生,而且已经非常紧张,几乎超过了最后期限。可以说是被扔到了公共汽车下面。但一旦这一切结束,我计划以后再看一遍,这样我就可以完全掌握django了。我的猜测是,既然您在加载文档后更改了表单,那么您就遇到了问题。你可以在视图中使用decorator,看看它现在是否有效。是的,这就是我想要弄明白的。是的,这很有效。介意把它贴出来作为答案,让我选择它吗?