我有一个包含多个选择的表单,由于 javascript,它可以根据用户的需求添加。我无法使用序列化功能检索表单元素...
我尝试使用 getElementByTagName,但我只能选择一个带有 document.getElementsByTagName ('select') [0]
.value 的项目,因此如果有人对此有任何想法。
这是我的 html/PHP :
<form id="dropdown_scene">
<div class="form-group">
<label for="select_quand">Quand l'appareil</label>
<select class="form-control" id="select_quand">
<?php
$stmt = $pdo->prepare('SELECT * FROM main.appareil');
$stmt->execute();
// On affiche chaque entrée une à une
while ($donnees = $stmt->fetch()) {
//TODO : selectionner seulement les boutons grace au label et par instance ?>
<option>Le <?php echo $donnees['label']; ?> <?php echo $donnees['node_name']; ?> <?php
if ($donnees['instance'] === '1' and $donnees['label'] === 'Switch') {
echo 'Switch 1 et 2';
} elseif ($donnees['instance'] === '2' and $donnees['label'] === 'Switch') {
echo 'Switch 1';
} elseif ($donnees['instance'] === '3' and $donnees['label'] === 'Switch') {
echo 'Switch 2';
}
?></option>
<?php
}
$stmt->closeCursor(); // Termine le traitement de la requête
?>
</select>
</div>
<div class="form-group">
<label for="select_base">est actionné faire</label>
<select class="form-control" id="select_base">
<?php
$stmt = $pdo->prepare('SELECT * FROM main.command');
$stmt->execute();
// On affiche chaque entrée une à une
while ($donnees = $stmt->fetch()) {
//TODO : selectionner seulement les boutons grace au label et par instance ?>
<option><?php echo $donnees['appareil']; ?><?php echo $donnees['bouton']; ?></option>
<?php
}
$stmt->closeCursor(); // Termine le traitement de la requête
?>
</select>
<div class="form-group" id="Cible">
<!-- Cible pour l'ajout de champ -->
</div>
</div>
<a href="#" class="btn btn-success" onclick="fAddText()"><i class="fas fa-plus nav-icon"></i></a>
<a href="#" class="btn btn-danger" id="sup" onclick="fSuppText()"><i class="fas fa-minus nav-icon"></i></a>
<div class="form-group">
<button href="#" onclick="submit_form()" style="position: relative; float: right;"
class="btn btn-success"><i class="fas fa-save nav-icon"></i> Sauvgarder Scene
</button>
</div>
</form>
这是我的 AJAX :
<script type="text/javascript">
function submit_form() {
var form_url = "../dist/php/add_scene.php"; //récupérer l'URL du formulaire
var form_method = "POST"; //récupérer la méthode GET/POST du formulaire
var form_data = $('#dropdown_scene').serialize();
$.ajax({
url: form_url,
type: form_method,
data: form_data,
success: function (data) {
const Toast = Swal.mixin({
toast: true,
position: 'top-end',
showConfirmButton: false,
timer: 8000
});
Toast.fire({
icon: 'success',
title: 'La scene a etais enregistré avec succes ! '+ form_data +''
});
},
error: function () {
alert('Une erreur c\'est produite');
},
});
}
</script>
谢谢
答案 0 :(得分:0)
您的选择都没有名称,因此它们不会被序列化。这是 HTML 表单如何工作的基本规则,您需要确保熟悉它。 name
属性控制参数在发送到服务器时的名称。
例如你需要有类似的东西
<select name="quand" class="form-control" id="select_quand">
并且在您要提交的每个表单元素上都有相似之处。