使用$\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测试的变量,那么您可以添加一个变量,但是,您有危险:我改为单引号,但它仍然不起作用。我也不知道为什么。看来应该行得通。