как получить значения из входных тегов начальной загрузки, а затем вставить в базу данных MySQL

Я использовал загрузочные теги ввода на моем сайте. но я не могу просто обработать значения тегов, поскольку они отображаются в теге 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);
}
}
?>

кто-нибудь может помочь? Спасибо

1

Решение

Я немного сбит с толку относительно того, что вы хотите, но я постараюсь ответить на основе информации, как я понял.

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);
}
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

Вы получите: [«спорт, политика, бизнес»] сохранить в базе данных. Извлеките это значение, если вы хотите получить.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector