首先,为我糟糕的英语道歉。下面是我的表格图片,我在我的网站上有一个表单,首先从菜单到文本框获取值,然后使用Php将值存储到数据库中,.i附加了我的代码和图像,我是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')");
}发布于 2018-09-19 10:43:56
您可以使用无线电字段,而不是使用锚作为导航的一部分。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'];您需要更改无线电字段的样式,以匹配您的锚。由于输入在标签内,您可以对标签进行样式化,并隐藏输入字段以保持相同的外观和感觉。造型单选按钮
这个方法比使用JavaScript捕获点击和将值注入文本字段更有吸引力,因为它将使用或不使用JavaScript。
发布于 2018-09-19 11:12:26
实现这一目标的方法之一是使用AJAX。在我的示例中,我将使用jQuery AJAX,这将要求您在应用程序中包含一个jQuery库。我个人使用jQuery的原因是因为它大大简化了JavaScript代码,因此更容易编写和理解。
现在,在您的问题中,您提到了元素textbox,但我在任何地方都看不到该元素?您的意思是输入字段,这是完全不同的东西吗?因为我没有看到任何textbox元素,所以我将假设您是指输入字段。
在直接进入AJAX函数之前,我想解释几件事。基本上,我们使用AJAX函数所做的是将值解析到另一个页面,该页面将处理我们的数据库逻辑,例如INSERT、数据等。
AJAX函数中的关键元素是您在函数中定义的选项。
type,它是您要解析的数据的数据类型。例如GET和POSTurl,它是定义将被解析的数据的页面的地方。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()的另一个函数中。您可以选择调用此函数,只需单击按钮即可触发AJAX函数。
<button onclick="submitForm();">Submit content</button>
由于您对想要检索的元素值并不完全明确,所以我将它们都作为目标。实际上,我不确定$("[data-value='whatever']")是否是一个有效的选择器。如果不是,只需给他们一个id或name属性来代替。
现在,由于我在AJAX函数中将type定义为POST,所以您必须在您的$_POST文件中使用$_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.查普尔在评论部分放弃此链接的原因之一。
https://stackoverflow.com/questions/52403593
复制相似问题