使用$\u php\u SELF和$\u POST使用link将表单提交到php中

使用$\u php\u SELF和$\u POST使用link将表单提交到php中,php,forms,Php,Forms,我正在尝试从链接而不是输入提交按钮获取要提交的表单 <form id="formadd" name="formadd" method="post" action="<?php $_PHP_SELF ?>"> ...form data <a name="ADD" onclick="document.getElementById("formadd").submit();" href="" class="button primary">

我正在尝试从链接而不是输入提交按钮获取要提交的表单

    <form id="formadd" name="formadd" method="post" action="<?php $_PHP_SELF ?>">

    ...form data 

     <a name="ADD" onclick="document.getElementById("formadd").submit();" href="" class="button primary">Add Camera to Database</a>
     <!-- <input type="submit" name="ADD" value="Add Camera"> --> 
被调用的PHP如下所示:

<?php 
            if(isset($_POST['ADD'])) {
                $SIGID = $_POST['SIGID'];
                $LOC = $_POST['LOC'];
                $URL = $_POST['URL'];
                $IMG = $_POST['IMG'];
                $LAT = $_POST['LAT'];
                $LON = $_POST['LON'];
                $CAMTYPE = $_POST['CAMTYPE'];



                $sql = "INSERT INTO cam_markers (SIGID, LOC, URL, LAT, LON, CAMTYPE, IMG) 
                   VALUES ('$SIGID', '$LOC', '$URL', '$IMG', '$LAT', '$LON', '$CAMTYPE')";
                $retval = mysql_query($sql);

                if(! $retval ) {
                   die('Could not add data: ' . mysql_error());
                }
                echo 'Added data successfully' . PHP_EOL;
                mysql_close($connection);
            }
?>
该链接目前不工作,但它使用正常的提交输入工作,所以我知道脚本是可以的

我最好的猜测是,这个问题与以下事实有关:$\u POST仅从表单元素创建数组,并且由于超链接不是表单元素,因此它的名称标识符没有被传递

但是,我在没有isset条件的情况下尝试了它,只是尝试回显正在传递的数据,但没有成功。所以,这似乎表明还有别的事情在发生

感谢您的帮助/解决方法。谢谢

编辑:我通过这样做使它工作:

使用提交按钮

    <form id="formadd" name="formadd" method="post" action="<?php $_PHP_SELF ?>">

    ...form data 

     <a name="ADD" onclick="document.getElementById("formadd").submit();" href="" class="button primary">Add Camera to Database</a>
     <!-- <input type="submit" name="ADD" value="Add Camera"> --> 
如果你不喜欢它看起来的样子,这很可能是你避免使用合适工具的原因,那么就应用CSS

使用提交按钮

    <form id="formadd" name="formadd" method="post" action="<?php $_PHP_SELF ?>">

    ...form data 

     <a name="ADD" onclick="document.getElementById("formadd").submit();" href="" class="button primary">Add Camera to Database</a>
     <!-- <input type="submit" name="ADD" value="Add Camera"> --> 
如果你不喜欢它看起来的样子,这很可能是你避免使用合适工具的原因,那么就应用CSS

有几件事。。。 如果操作为空,浏览器将提交到当前页面,因此

action=""   fixes it.
如果您愿意,可以使用PHP_SELF,但它也不会打印出来

action="<?php echo $_PHP_SELF; ?>"
或者,简写语法

action="<?=$_PHP_SELF?>"
最后,您的代码将查找$\u POST['ADD'],因此在表单中创建一个隐藏的

<input type="hidden" name="ADD" value="ADD" >
有几件事。。。 如果操作为空,浏览器将提交到当前页面,因此

action=""   fixes it.
如果您愿意,可以使用PHP_SELF,但它也不会打印出来

action="<?php echo $_PHP_SELF; ?>"
或者,简写语法

action="<?=$_PHP_SELF?>"
最后,您的代码将查找$\u POST['ADD'],因此在表单中创建一个隐藏的

<input type="hidden" name="ADD" value="ADD" >

您应该使用提交按钮

钮扣{ 背景:无!重要; 边界:无; 填充:0!重要; 字体系列:arial,无衬线; 颜色:069; 文字装饰:下划线; 光标:指针; }
您的按钮看起来像链接您应该使用提交按钮

钮扣{ 背景:无!重要; 边界:无; 填充:0!重要; 字体系列:arial,无衬线; 颜色:069; 文字装饰:下划线; 光标:指针; }
您的按钮看起来像一个链接您使用的技术是正确的,您可以使用链接并提交。我看到的唯一问题是错误的报价:

<a name="ADD" onclick="document.getElementById("formadd").submit();"
                                               ^       ^

您使用的技术是正确的,您可以使用链接和.submit。我看到的唯一问题是错误的报价:

<a name="ADD" onclick="document.getElementById("formadd").submit();"
                                               ^       ^

这是错误的。如果表单是在同一页面上提交的,但如果您想使用$_服务器['PHP_SELF'],则不需要指定操作;所以现在

action="<?php echo $_SERVER['PHP_SELF'];?>">

这是错误的。如果表单是在同一页面上提交的,但如果您想使用$_服务器['PHP_SELF'],则不需要指定操作;所以现在

action="<?php echo $_SERVER['PHP_SELF'];?>">

我意识到这是最直接的方法。但是我的工作流程涉及到使用框架来快速原型化,如果我能帮助的话,我宁愿不去编辑sass/css。无论如何,谢谢。我知道这是最直接的方法。但是我的工作流程涉及到使用框架来快速原型化,如果我能帮助的话,我宁愿不去编辑sass/css。无论如何,谢谢。请记住,这意味着您的最终用户必须启用javascript才能工作。样式化的标准提交按钮没有。请记住,这意味着您的最终用户必须启用javascript才能工作。样式化的标准提交按钮不需要。如果表单在同一页面上提交,但如果您想使用$u SERVER['PHP_SELF'],则不需要指定操作;如果您想要的只是一个用isset测试的变量,那么您可以添加一个变量,但是,您有危险:我改为单引号,但它仍然不起作用。我也不知道为什么。如果表单在同一个页面上提交,您不需要指定操作,但是如果您想使用$_SERVER['PHP_SELF'];如果您想要的只是一个用isset测试的变量,那么您可以添加一个变量,但是,您有危险:我改为单引号,但它仍然不起作用。我也不知道为什么。看来应该行得通。