对不起,我英语不好。 below is my form image我的“我的网站”中有一个表格,首先是如何从菜单到文本框获取值,然后使用Php将值存储到数据库中。我已经附加了我的代码和图像。我是Php的初学者。 请帮助我
HTML代码
<div class="taxi-form-full">
<div class="container">
<form method="POST" action="">
<div class="menu-types">
<a href="#" data-value="Standart" class="type-1 active">Standart</a>
<a href="#" data-value="Business" class="type-2">Business</a>
<a href="#" data-value="VIP" class="type-3 red">Vip</a>
<a href="#" data-value="Bus" class="type-4">Bus-Minivan</a>
</div>
<div class="row forms">
<div class="col-md-3">
<div class="form-group">
<input type="text" id="searchTextSrc" name="source" value="" placeholder="From Address..." class="ajaxField"><span class="fa fa-map-marker"></span>
<input type="hidden" id="citySrc" name="citySrc" />
<input type="hidden" id="cityLatSrc" name="cityLatSrc" />
<input type="hidden" id="cityLngSrc" name="cityLngSrc" />
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<input type="text" id="searchTextDes" name="destination" value="" placeholder="To..." class="ajaxField"><span class="fa fa-map-marker"></span>
<input type="hidden" id="cityDes" name="cityDes" />
<input type="hidden" id="cityLatDes" name="cityLatDes" />
<input type="hidden" id="cityLngDes" name="cityLngDes" />
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<input type="text" id="phone" name="phone" value="" placeholder="Phone Number" class="ajaxField required"><span class="fa fa-phone"></span>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<input type="text" id="text" name="datetime" value="" placeholder="Date and Time" class="ajaxField js-datetimepicker"><span class="fa fa-calendar"></span>
</div>
</div>
</div>
<input type="submit" name="submit" value="submit" class="btn btn-lg btn-red aligncenter">
</form>
</div>
</div>
Php代码
<?php
$hname = 'localhost';
$uname = 'root';
$pword ='';
$dbase ='sample';
$con = mysqli_connect($hname, $uname , $pword ,$dbase );
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
if(isset($_POST['submit'])){
$phone = $_POST['phone'];
$datetime = $_POST['datetime'];
$query = mysqli_query($con,"insert into test(phone, datetime) values ('$phone', '$datetime')");
}
答案 0 :(得分:0)
您可以使用无线电字段来代替在导航中使用锚点。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
这将向您发送通过$_POST
变量选择的适当菜单项。
<label class="type-1">
<input type="radio" name="menu" value="Standart" checked /> Standart
</label>
<label class="type-2">
<input type="radio" name="menu" value="Business" /> Business
</label>
<label class="type-3 red">
<input type="radio" name="menu" value="VIP" /> Vip
</label>
<label class="type-4">
<input type="radio" name="menu" value="Bus" /> Bus-Minivan
</label>
在PHP中,您将根据所选择的选项接收该值。
<?php
$menu = $_POST['menu'];
您需要更改无线电字段的样式,以匹配锚点的样式。由于输入位于标签内,因此您可以设置标签样式并隐藏输入字段,以保持相同的外观。 Styling radio button
此方法比使用JavaScript捕获点击并将值注入文本字段更具吸引力,因为无论是否使用JavaScript,该方法都可以使用。
答案 1 :(得分:0)
您可以使用AJAX来实现这一目标。在我的示例中,我将使用jQuery AJAX,这将要求您在应用程序中包括jQuery库。我个人使用jQuery的原因是因为它大大简化了JavaScript代码,因此使编写和理解起来更加容易。
现在,在您的问题中,您提到了元素 textbox ,但是我在任何地方都看不到该元素?您是说您的 input 字段,这是完全不同的东西吗?由于我没有看到任何 textbox 元素,因此我假设您的意思是 input 字段。
在直接进入AJAX函数之前,我想解释一些事情。基本上,我们将使用AJAX函数将值解析到另一个页面,该页面将处理我们的数据库逻辑,例如INSERT
数据等。
AJAX函数中的关键元素是您在函数中定义的选项。
type
,这是您要访问的数据的数据类型
解析。例如GET
和POST
url
,您可以在其中定义要解析数据的页面。data
,您可以在其中定义要解析的数据变量。success
,它是一个函数,您可以在其中定义在AJAX函数成功后要执行的某些操作。AJAX功能:
function submitForm() {
$.ajax({
type : "POST",
url : "/your_page.php",
data : {
standart: $("[data-value='Standart']").val(),
business: $("[data-value='Business']").val(),
vip: $("[data-value='VIP']").val(),
bus: $("[data-value='Bus']").val(),
searchTextSrc: $("#searchTextSrc").val(),
citySrc: $("#citySrc").val(),
cityLatSrc: $("#cityLatSrc").val(),
searchTextDes: $("#searchTextDes").val(),
cityDes: $("#cityDes").val(),
cityLatDes: $("#cityLatDes").val(),
cityLngDes: $("#cityLngDes").val(),
phone: $("[name='phone']").val(),
datetime: $("[name='datetime']").val()
},
success: function (html) {
//do something on success
}
})
}
请注意,我将AJAX函数封装到另一个名为 submitForm()的函数中。您可以选择在按钮上调用此函数 onclick 来触发AJAX函数。
<button onclick="submitForm();">Submit content</button>
由于您并非完全准确地想要获取 哪些元素值,因此我将它们全部作为目标。我实际上不确定$("[data-value='whatever']")
是否是有效的选择器。如果不是,只需给他们提供 id 或 name 属性即可。
现在,由于我在AJAX函数中将type
定义为POST
,因此您将不得不在PHP文件中使用$_POST
来获取从AJAX功能。
在您的PHP页面中:
<?php
$standart = $_POST['standart'];
$business = $_POST['business'];
$vip = $_POST['vip'];
$bus = $_POST['bus'];
$searchTextSrc = $_POST['searchTextSrc'];
$citySrc = $_POST['citySrc'];
$cityLatSrc = $_POST['cityLatSrc'];
$searchTextDes = $_POST['searchTextDes'];
$cityDes = $_POST['cityDes'];
$cityLatDes = $_POST['cityLatDes '];
$cityLngDes = $_POST['cityLngDes '];
$phone = $_POST['phone '];
$datetime = $_POST['datetime '];
/* You now have all your parsed variables as PHP variables
that you can choose to INSERT into your database. */
$hname = 'localhost';
$uname = 'root';
$pword ='';
$dbase ='sample';
$con = mysqli_connect($hname, $uname , $pword ,$dbase );
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
$sql="INSERT INTO test SET phone='$phone', datetime='$datetime'";
mysqli_query($con, $sql);
?>
但是,请注意,您对SQL注入持开放态度,这是@R的原因之一。 Chappell在评论部分删除了this link。