Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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 我如何告诉PHP提交了哪个表单_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 我如何告诉PHP提交了哪个表单

Javascript 我如何告诉PHP提交了哪个表单,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,有没有办法告诉PHP提交了哪个表单 表格一 <form id="factory" action="bullets.php" method="post"> <input type="submit" value="Kopen"> </form> 如果我得到一个输入,我会得到一个$u POST变量 所以我需要知道上面的哪些表格已经提交了 谢谢..创建一个带有名称的提交按钮: <form id="factory" action="bullets.php

有没有办法告诉PHP提交了哪个表单

表格一

<form id="factory" action="bullets.php" method="post">
    <input type="submit" value="Kopen">
</form>
如果我得到一个输入,我会得到一个$u POST变量

所以我需要知道上面的哪些表格已经提交了


谢谢..

创建一个带有名称的提交按钮:

<form id="factory" action="bullets.php" method="post">
    <button type="submit" value="factory" name="submit">Kopen</button>
</form>

创建一个名为“提交”的按钮:

<form id="factory" action="bullets.php" method="post">
    <button type="submit" value="factory" name="submit">Kopen</button>
</form>
这将有助于:

var url;

$('form').submit(function (event) {
    event.preventDefault();

    url = $(this).attr('action');

    location.hash = url;
    var data = $(this).serialize();
    data += "&formId=" + encodeURIComponent($(this).attr('id')); // if you have data in the form.
    // do this if you don`t have data in the form:
    // data = {formId: $(this).attr('id')};

    $.ajax ({
        url: url,
        method: 'POST',
        data: data
    }).done(function (html) {
        $('#content').html(html);
    });
});
然后,您可以从
$\u POST['formId']

获取表单Id。这将起作用:

var url;

$('form').submit(function (event) {
    event.preventDefault();

    url = $(this).attr('action');

    location.hash = url;
    var data = $(this).serialize();
    data += "&formId=" + encodeURIComponent($(this).attr('id')); // if you have data in the form.
    // do this if you don`t have data in the form:
    // data = {formId: $(this).attr('id')};

    $.ajax ({
        url: url,
        method: 'POST',
        data: data
    }).done(function (html) {
        $('#content').html(html);
    });
});

然后,您可以从
$\u POST['formId']

获取表单Id,通过对输入字段进行命名,您可以轻松识别哪些字段来自哪个表单,并通过扩展来确定提交了哪个表单

<form id="factory" action="bullets.php" method="post">
    <input type="text" name="form_1[my_input]">
    <input type="submit" value="Kopen">
</form>

<form id="localFactory" action="bullets.php" method="post">
    <input type="text" name="form_2[my_input]">
    <input type="submit" value="Kopen">
</form>

通过给输入字段命名,您可以很容易地识别哪些字段来自哪个表单,并扩展到提交哪个表单

<form id="factory" action="bullets.php" method="post">
    <input type="text" name="form_1[my_input]">
    <input type="submit" value="Kopen">
</form>

<form id="localFactory" action="bullets.php" method="post">
    <input type="text" name="form_2[my_input]">
    <input type="submit" value="Kopen">
</form>

如果您想要一个纯html的解决方案,可以添加一个表单id为的隐藏输入:

<form id="factory" action="bullets.php" method="post">
    <input type="hidden" value="factory" name="formId"/>
    <input type="submit" value="Kopen">
</form>

如果您想要一个纯html的解决方案,可以添加一个表单id为的隐藏输入:

<form id="factory" action="bullets.php" method="post">
    <input type="hidden" value="factory" name="formId"/>
    <input type="submit" value="Kopen">
</form>

您是否尝试为提交按钮使用不同的名称?@kingkero是的,我没有得到post变量返回..使用“formID”名称为每个表单添加隐藏字段并设置唯一值您尝试为提交按钮使用不同的名称了吗?@kingkero是的,我尝试过,我没有得到一个post变量。使用'formID'名称为每个表单添加隐藏字段,并设置唯一值Nope,print\r($\u post)为空。我没有注意到还有一段javascript通过ajax提交表单。请参阅lshas的答案。不,print\r($\u POST)是空的。我没有注意到您还有一段javascript通过ajax提交表单。请参阅lshas的答案。随机文本字段从何而来?他的按钮名为:“Kopen”,在荷兰语中是“buy”的意思,您可能不知道,因此这可能是两个表单,只有按钮,就像他在示例中所示。@Loko我不知道这一点,但我支持此解决方案,因为命名空间可以作为一种正常做法应用于submit按钮。它涵盖了表单具有多个提交按钮的情况。然后,如果您有多个表单,每个表单都有多个提交按钮,那么如果没有某种形式的分组,事情就会变得复杂。随机文本字段从何而来?他的按钮名为:“Kopen”,在荷兰语中是“buy”的意思,您可能不知道,因此这可能是两个表单,只有按钮,就像他在示例中所示。@Loko我不知道这一点,但我支持此解决方案,因为命名空间可以作为一种正常做法应用于submit按钮。它涵盖了表单具有多个提交按钮的情况。然后,如果您有多个表单,每个表单都有多个提交按钮,那么如果没有某种形式的分组,事情就会变得复杂起来。
if (isset($_POST['formId']) && $_POST['formId'] == 'factory') { 
   //Do what you want here
}