6 回答
只需使用<form>
标签,真的。POST
方法需要一个<form>
标签。我没有看到任何<form
从表单中排除标签的正当理由。
现在,我无法在没有标记的情况下尝试发送 POST 数据。我使用引导框架。
Bootstrap 不会限制您使用<form>
标签。:)
将表单包装在<form
标签中,如下所示:
<form action="somefile.php" method="post" name="myForm">
<!-- your form code here -->
</form>
另外,将您的按钮更改为:
<button name="submit" class="btn btn-large btn-block btn-primary" type="button">Submit</button>
至:
<input type="submit" name="submit" value="Submit" class="btn btn-large btn-block btn-primary"/>
最后,在您的 PHP 代码中,您正在执行以下操作:
$gender =$_POST["gender"];
但是没有 name 属性的输入字段gender
。您应该使用该名称创建一个输入字段,或者从脚本中删除该定义。
那应该可以解决问题。干杯!
为什么不使用 a <form>
?所有其他方法包括将 jquery 与 ajax 结合使用,或者仅使用 ajax 来发送值。但不应该有不使用<form>
标签的理由。
首先,您需要包含表单标签:
<form action="process.php" method="post">
//form content
</form>
更改您的提交按钮。将名称更改为“提交”以外的名称也很好,以避免命名空间冲突:
<input type="submit" name="sub" class="btn btn-large btn-block btn-primary" value ="Submit" />
此外,为您的选择提供不同的名称(您有两个名称为“topic”):
<select id="meat" name="meat">
<option value="hotdog" name="nhotdog"> hotdog </option>
<option value="sausage" name="nsausage"> sausage </option>
</select>
然后从以下位置检索这些值$_POST
:
$meat = $_POST['meat'];
我一直认为,如果您只想使用提交按钮提交数据,则必须使用 -tag。另一种方法是使用按钮并使用 javascript / jquery 从字段中读取数据并通过带有 url 的 get-parameters 提交它们。但是,您似乎想采用经典/简单的方式。所以你需要定义方法和动作。
另外一点提示:尝试使用带有 mvc-(模型视图控制器)模式的 php 框架。当你以正确的方式使用它时,它会让你更容易处理你的代码,带来预定义的函数/类,并使你的函数对数据库更安全。这种框架的一个例子是codeigniter,但还有更多......
请看下面的代码:
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(button).click(function() {
var name=$("#name").val();
var frt=$("#fruit").val();
var gender = $("#gender").val();
var topic= $("#topic").val();
var descr= $("#description").val();
var dataString = 'name='+name+'fruit='+ frt+'gender='+gender+'topic='+topic+'desc='+descr;
$.ajax
({
type: "POST",
url: "ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("#success").html(html);
}
});
});
});
</script>
您应该在所有下拉字段中添加 id。还要添加你要查看显示成功或错误结果的
<div id="success"></div>
在#box3
您有 2 个具有相同名称的选择。
尝试类似:
<select id="meat" name="meatSelect">
<select id="fruit" name="fruitSelect">
接着:
$meatSelect = $_POST['meatSelect'];
$fruitSelect = $_POST['fruitSelect'];