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

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

любой может помочь? благодаря

php,jquery,mysql,

1

Ответов: 2


0 принят

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

Для моего ответа требуется 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');
}

EDIT: Я считаю, что сейчас понимаю этот вопрос.

Чтобы получить данные динамически созданного контента, вам, скорее всего, придется использовать 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

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

PHP, JQuery, MySQL,
Похожие вопросы