如何从bootstrap输入标签获取值,然后插入到mysql数据库中

时间:2017-08-11 07:39:27

标签: php jquery mysql

我在我的网站中使用了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);
}
}
?>
任何人都可以帮忙吗?感谢

2 个答案:

答案 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

您将获得:[“体育,政治,商业”]保存在数据库中。如果要返回,请提取该值。