Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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
Php HTML表单按钮值未在Safari和Chrome中发布_Php_Jquery_Html_Forms_Post - Fatal编程技术网

Php HTML表单按钮值未在Safari和Chrome中发布

Php HTML表单按钮值未在Safari和Chrome中发布,php,jquery,html,forms,post,Php,Jquery,Html,Forms,Post,我使用jQuery在单击按钮时提交表单。然后我想测试按钮的值,但是,在Safari和Chrome中没有提交。为什么?附近有工作吗 在IE/FF中测试以下代码以查看其是否有效,然后在Safari/Chrome中测试以查看其是否有效: ButtonPostTest.php: <?php if(isset($_POST['testBtn'])) { echo $_POST['testBtn']; } ?> <html> <head&

我使用jQuery在单击按钮时提交表单。然后我想测试按钮的值,但是,在Safari和Chrome中没有提交。为什么?附近有工作吗

在IE/FF中测试以下代码以查看其是否有效,然后在Safari/Chrome中测试以查看其是否有效:

ButtonPostTest.php:

<?php
    if(isset($_POST['testBtn'])) {
        echo $_POST['testBtn'];
    }
?>
<html>
    <head>
    <title></title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#btn').click(function() {
                    $('form').submit();  // submit the form
                });
            });
        </script>
    </head>
    <body>
        <form action="" method="post">          
            <button id="btn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
        </form>
    </body>
</html>
<button name="step" id="btn1" value="my_value">btn_text</button>
<button type="submit" name="step" id="btn1" value="my_value">btn_text</button>

另外,这只是使用jQuery
.submit()
提交时的一个问题-如果没有这个问题,它可以通过按钮或输入进行提交。

是两个不同的标记。如果您想提交按钮值,请使用
标记。

同意VIN,我可能会使用

您使用
而不是
有什么特殊原因吗?我通常更喜欢
(允许我添加图标和图像),但我相信浏览器之间在如何解释值方面存在差异


根据,一些浏览器会提交value属性,而其他浏览器(如IE7)会错误地提交标签之间的文本。

我认为您发现了webkit错误

我在Chrome中得到了同样的东西,你的表单:

<form action="" method="post">          
   <button id="btn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
</form>

发帖!
这不会发送任何数据。如果“但是我添加了另一个元素,则输入:

<form action="" method="post">          
   <input type="hidden" name="shim" value="" />
   <button id="testBtn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
</form>

发帖!
这会发送两个值。这是没有JavaScript的。一旦添加了shim hidden form元素,它看起来就有意义了

此解决方案需要更多的测试,但它可能满足您的需要

给它起个名字

<button type='submit' id='trash' name='trash' value="trash" class='red'>

正如Robert在上面所说,当使用
标签时,您需要
name=“”
value=“”
,例如

<button name="Search" value="Simple" type="submit">Search</button>
搜索
VS

搜索
在本例中,POST数据的值对为:

搜索简单

搜索高级

然后根据该POST值,您可以编写代码以采取适当的操作。:)


也就是说,您不需要使用输入,只需使用带有名称/值的按钮,就可以了。

通过捕获隐藏的输入,尝试以提交方式发送按钮

PHP:


和html:

<form method="POST" action="" id="formname" name="formname">
<input name="btname" id="btname" type="hidden" />
<button onclick="document.formname.submit()" value="Submit">Send</button>
</form>

发送

您发布了多少值

我不确定你的问题是否已经解决了。有一件事没有提到,您可能超出了php最大输入变量限制。

当您超出此限制时,Php是无声的,因此您必须检查警告日志,或者通过以下方式进行检查:

一,。 对POST数组值进行计数。在
var\u dump($\u POST)中编写脚本
(在安全生产沙箱环境中)可以做到最好,因为您可以查看最终的值输出,以查看POST数组“切断”的位置

二,。 接下来,运行一个脚本,使用函数输出php信息:
phpinfo()
。检查“最大输入变量”的值

三,。 如果POST数组计数==“max\u input\u vars”值,则超出了限制

在您的情况下,提交输入可能会在稍后的文章中包含


要编辑php.ini中的值(本例中为5000),请添加或编辑以下行:
max\u input\u vars=5000

这可能是非常明显的,现在我自己修复了它,我意识到这是一个愚蠢的错误。但对我来说,我错误地取消了
type=“submit”
。表单始终有效,但只是从这些按钮中发布了一个值

未传递值(错误):

<?php
    if(isset($_POST['testBtn'])) {
        echo $_POST['testBtn'];
    }
?>
<html>
    <head>
    <title></title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#btn').click(function() {
                    $('form').submit();  // submit the form
                });
            });
        </script>
    </head>
    <body>
        <form action="" method="post">          
            <button id="btn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
        </form>
    </body>
</html>
<button name="step" id="btn1" value="my_value">btn_text</button>
<button type="submit" name="step" id="btn1" value="my_value">btn_text</button>
btn\u文本
值通过(良好):

<?php
    if(isset($_POST['testBtn'])) {
        echo $_POST['testBtn'];
    }
?>
<html>
    <head>
    <title></title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#btn').click(function() {
                    $('form').submit();  // submit the form
                });
            });
        </script>
    </head>
    <body>
        <form action="" method="post">          
            <button id="btn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
        </form>
    </body>
</html>
<button name="step" id="btn1" value="my_value">btn_text</button>
<button type="submit" name="step" id="btn1" value="my_value">btn_text</button>
btn\u文本
不管怎么说,我希望这能帮助那些刚起步的新人,或是那些似乎显而易见的人


干杯

所以,我也发生了类似的事情。除了Chrome[版本78.0.3904.108(官方版本)(64位)],一切正常

当我拿出我电脑里的id=时,它成功了!但这不是问题所在。问题是我禁用了标记中onclick=处的[Submit]按钮(使用按钮id=)。当你这么做的时候,Chrome看起来只是不发布任何东西。这有点毫无意义?奇怪吗?我不知道为什么

因此,我花了大量时间四处挖掘,发现可以在中的onsubmit=上禁用[Submit]按钮。事实上,onsubmit=与onclick=几乎相同,因此在将来,我想我需要做一些更改,以便始终使用onsubmit=然后所有大型浏览器将继续为我工作。

在提交/单击事件期间禁用的按钮不会提交其值 根据Alan Stewart的说法,我在编写一个小实用程序以防止双击表单提交按钮(该按钮监听“提交”并禁用按钮)时遇到了这个问题

我更改了代码,以确定表单是否已提交,如果已提交,则禁用按钮并通过
event.preventDefault()
阻止表单提交


它不像以前那样好,它立即禁用了提供即时视觉反馈的按钮(因为Bootstrap具有禁用按钮的样式).

如果您确实需要一个用于显示目的的
,您可以使用JS click处理程序解决此问题,该处理程序在隐藏字段中设置适当的值…将按钮更改为输入也不起作用,它仍然没有提交。隐藏字段已提交,因此我可能必须使用此解决方案选项->单击按钮,将隐藏字段设置为适当的值,然后提交表单,使用隐藏字段进行处理。我只是想知道是否有更好的解决办法?我将不再参考W3学校。我将不再提及学校。我将不再引用w3schools。我需要使用jQuery进行提交,以便在提交之前修改表单操作。还是老样子吗