Я использовал загрузочные теги ввода на моем сайте. но я не могу просто обработать значения тегов, поскольку они отображаются в теге span с теми же именами классов. Я хочу получить значения каждого отображаемого тега, а затем вставить в базу данных MySQL, используя php и jQuery. то, что у меня сейчас есть:
<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);
}
}
?>
кто-нибудь может помочь? Спасибо
Я немного сбит с толку относительно того, что вы хотите, но я постараюсь ответить на основе информации, как я понял.
JQuery требуется для моего ответа.
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js
Создайте HTML-форму с POST
способ отправить данные в файл 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 отправит данные в файл PHP в формате JSON. 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);
}
Вы должны сделать ввод, чтобы принять массив:
<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
Вы получите: [«спорт, политика, бизнес»] сохранить в базе данных. Извлеките это значение, если вы хотите получить.