我在我的网站中使用了bootstrap输入标签。但我不能只处理标签的值,因为它们在具有相同类名的span标签中呈现。我想获取每个渲染标记的值,然后使用php和jQuery插入MySQL数据库。我现在拥有的是:
<head>
<!-- botstrap-tags css and js -->
<link rel="stylesheet" href="bootstrap-tags/css/bootstrap-tagsinput.css" type="text/css">
<script src="bootstrap-tags/js/bootstrap-tagsinput.js"></script>
</head>
<form action="" method="post">
<div class="form-group">
<label>Tags</label>
<input type="text" name="tags" data-role="tagsinput" value="sport, politics, business">
</div>
<div class="form-group">
<input type="submit" value="add tags">
</div>
</form>
当我完成添加标记后,它会生成以下标记:
<span class="tag label label-info">
"sport"
<span data-role="remove">
::after
</span>
</span>
<span class="tag label label-info">
"poltics"
<span data-role="remove">
::after
</span>
</span>
<span class="tag label label-info">
"business"
<span data-role="remove">
::after
</span>
</span>
这是我的PHP脚本
<?php
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '';
$dbname = 'web';
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(! $link ) {
echo 'Connected failure<br>';
}
if (isset($_POST['submit'])) {
$tags=$_POST['tags'];
$sql = "INSERT INTO `tags`(`name`) VALUES ('$tags')";
if (mysqli_query($link, $sql)) {
// alert success message
echo "tags added successfully";
}
else {
echo "Error: " . $sql . "<br>" . mysqli_error($link);
}
}
?>
任何人都可以帮忙吗?感谢
答案 0 :(得分:0)
我对你想要的东西感到有些困惑,但我会根据我理解的信息尝试回答。
我的答案需要jQuery。
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js
使用POST
方法创建HTML表单,以将数据发送到PHP文件。
<form action="your_file.php" method="POST">
<input name="tag" type="text">
<input name="submit" type="submit">
</form>
在PHP文件中,使用$_POST[]
超全局,获取输入数据。
$tagValue = $_POST['tag'];
最后,创建SQL命令并查询数据库。
$sql = "INSERT INTO table('name') VALUES('$tagValue')";
$result = mysqli_query($link, $sql);
if (!$result)
{
echo('failure');
} else {
echo('success');
}
编辑:我相信我现在明白了这个问题。
要获取动态生成内容的数据,您很可能必须使用Javascript。
var $elements = $('.tag');
var elementValues = {};
for (var i = 0; i < $elements; i++)
{
elementValues[i] = $elements[i].text();
}
var sendableData = JSON.stringify(elementValues);
$.post('your_file.php' { data: sendableData }, function () {
console.log('data sent');
});
Javascript将以JSON格式将数据发送到PHP文件。 PHP需要解码JSON,并将该数据返回到PHP对象中。
$jsonData = $_POST['data'];
$data = json_decode($jsonData);
foreach($data as $key => $value)
{
$sql = "INSERT INTO table('name') VALUES('$value')";
$result = mysqli_query($link, $sql);
}
答案 1 :(得分:0)
您必须输入才能接受数组:
<input type="text" name="tags[]" data-role="tagsinput" value="sport, politics, business">
在您的php中:
$tags = $_POST['tags'];
$tags = json_encode($tags);
$tags = htmlspecialchars_decode($tags); // save this to database
您将获得:[“体育,政治,商业”]保存在数据库中。如果要返回,请提取该值。