我有一个通过ajax加载到页面的表单。表单工作正常但我在mysql调用填充的表单中选择输入以获取应该在下拉列表中的值。这是有效的,但选择看起来像这样。
<select>
<option value="1">Name</option>
<option></option>
<option value="2">Position</option>
并且它重复了额外的选项标记,其中没有任何内容导致表单上出现间距问题。
以下是表单代码:
<form id="company-form" action="scripts/create-library.php" method="post" enctype="multipart/form-data">
<button id="hide-form"><img src="images/minus.png"/></button>
<h3>Add Library Item Form</h3>
<input class="c-name" type="text" name="file-display-name" placeholder="File Display Name"/>
<select class="companies-dd" name="companies">
<?php
require_once("../../scripts/connection.php");
// Select all companies and related data
$sql = "SELECT company_id, company FROM companies ORDER BY company_id";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($c_id, $c);
while($stmt->fetch()){
echo "<option value='".$c_id."'>".$c."<option>";
}
?>
</select>
<input id="uploadFile" class="image-name" type="text" name="library-file-name" placeholder="No Logo File Chosen" disabled="disabled"/>
<input id="uploadBtn" type="file" name="library-file"/>
<input type="submit"/>
</form>
这是它加载到的页面上的ajax调用:
$(document).ready(function(e) {
$(document).on('click','#add',function(){
var form_fetch = $(this).attr('name');
$.ajax({
url: "include/forms/add-"+form_fetch+"-form.php", success: function(result){
$('#section-form').html(result);
}, error: function (){
$('#section-form').html("<p>The Form could not be either loaded or found. Please try again later or contact the web developer.</p>");
}
});
});
});
部分表单只是页面上的空白部分,在加载内容之前没有内容。我有另一种形式工作正常,但它不使用下拉选择。为什么查询呈现选项的额外回声?
答案 0 :(得分:2)
你的html格式不正确,你错过了选项标签
中的结束斜线echo "<option value='".$c_id."'>".$c."</option>";
答案 1 :(得分:1)
错误是您每次迭代都会创建两个option
标记而不是关闭它们:
echo "<option value='".$c_id."'>".$c."<option>";
应该是:
echo "<option value='".$c_id."'>".$c."</option>";