на самом деле работает на Ubuntu (работает PHP языка), У меня есть PDF-файл, который я конвертировать в текст, то я preg_match для того, чтобы извлечь данные мне нужно.PHP: вставить в базу данных с помощью AJAX
После этого I поместите мои строки данных в раскрывающийся список.
ПРОБЛЕМА: Я хочу, используя Ajax (насколько я понял), до получить выбранный вариант и сохранить его в моей базе данных.
Я прочитал много темы об этой проблеме, напрасно ...
Вот часть моего кода, он может быть более для бетона!
Мой PHP File:
$file = fopen($fichier_txt, 'r+');
if ($file)
{
$lines = array();
$pattern_GC = '/N°.*\d{4}(\s?\s?[\w\s]*)(\d{5})\s?(\w+)\W+/isU';
$fichier_txt_content = file_get_contents($fichier_txt);
$regex_GC = preg_match_all($pattern_GC, $fichier_txt_content, $match_GC);
// Match regroupant nom/prenom + adresse
$match_un = explode(PHP_EOL, $match_GC[1][0]);
$match_nom_prenom = $match_un[2];
$match_adresse = $match_un[3];
// Match CP
$match_deux = $match_GC[2][0];
// Match ville
$match_trois = $match_GC[3][0];
$opt = array($match_nom_prenom, $match_adresse, $match_deux, $match_trois);
$i = 0;?>
<html>
<form>
<select name="selectBox" class="drop" id="Combobox1" onchange="saveToDatabase(this.value)">
<?php foreach($opt as $val) {?>
<option value="$opt[$i]"><?=$val?></option>
<?php } ?>
</select>
</form>
</html>
Мой formulaire_2_test.php файл:
<?php
// Database connection to save form lines (PDO)
try
{
$PDO = new PDO('mysql:host=localhost;dbname=autofill_data', 'root', 'password');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// Get selected option and save into database
$selectedOpt = $_POST['selected'];
//exit($selectedOpt); --> I put this line in comments since I don't use it everytime.
$req = $PDO->prepare("INSERT INTO data_lines(idDistributeur, numLigne, libelle) VALUES(1, 2, :selectedOpt)");
$req->bindParam(':selectedOpt', $selectedOpt);
$req->execute($selectedOpt);
$data = $req->fetchAll();
}
?>
А теперь вот мой Ajax скрипт (я новичок в JS, и я знаю, что некоторые на вас могут появиться огромные ошибки, извините, и о моих французских именах ...)
Ajax: (находится в моем файле PHP)
<style>
.ui-autocomplete
{
cursor:pointer;
height:120px;
overflow-y:scroll;
}
</style>
<script>
function saveToDatabase(selectedValue)
{
var select = selectedValue;
select = $(this).serialize();
$('#Combobox1').on("change", function()
{
// POST to php script
$.ajax
({
type: 'POST',
url: 'formulaire_2_test.php',
data:{selected:this.value}
}).then(function(data){alert(data)});
});
}
$(document).ready(function()
{
saveToDatabase();
});
</script>
Я проверил мой PDO связь с необработанными значениями, и это делает работу, но мне интересно , как я мог бы передать мой PHP переменная в нее (я не уверен в использовании $ _POST для извлечения этих данных, так как я не обновляю ни одну страницу ...) Я также пробовал с INSERT в таблицу VALUES (: name, 2, 3), но это didn Я тоже работаю ... Я направляюсь вправо d irection? Как вы считаете это?
PS: Следующим шагом после этого было бы удалить выбранную опцию из следующих выпадающих списков (чтобы сохранить пользователю несколько драгоценных минут при заполнении формы подписки).
EDIT 24 ноября: мне нужен вариант «Fais тонный Choix» появится на моем раскрывающемся списке в качестве значения по умолчанию, но не в настройках списка:
Мой последний вопрос: я хочу, чтобы удалить выбранный вариант выпадающего списка, поэтому он не появится в другом раскрывающемся списке. Вот код, который я попробовал (не работает):
function removeSelected(value)
{
$('.drop').change('select', function()
{
// Definition des variables
var value = this.value;
var id = this.id;
// We del selects with a != id containing options with the same value of the selected one.
$("select:not(#" + id + ") option[value='" + value + "']").hide()
});
}
Я также попытался с .remove() вместо .hide() без успеха!
Спасибо заранее,
С уважением,
Stelio Kontos.
Я хотел бы добавить, что я проверил свой код на Firefox Consol, я могу увидеть свой запрос XHR, когда я выбираю параметр, но он не сохраняется в базе данных ... –
Вы можете использовать '' '$ _POST '' ''. Ajax - это просто HTTP-запрос, выполняемый javascript, а не окно браузера. Вместо того, чтобы делать '' 'данные: 'selected =' + select''', просто выполните' '' data: {selected: select} '' '. Тогда ваш выбранный вариант будет доступен в '' '$ _POST ['selected']' '' –
Спасибо, на моем пути для этого! :) –