AJAX 创建的输入元素的值在提交时变为 null
values of ajax created input element become null when submitted
我有这样的表格。当我在选择下拉列表中单击一个类时,会从 mysql 数据库中自动填充该特定类的费用。
<form id="forma" class="form-horizontal" method="POST" name="form1" action="<?php echo $editFormAction; ?>" novalidate="novalidate">
<div class="form-group">
<label for="text1" class="control-label col-lg-4">Full Name</label>
<div class="col-lg-8">
<input type="text" id="text1" name="name" placeholder="fullname in block letter" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-5">Admitted to Class:</label>
<div class="col-lg-6">
<select class="form-control" name="class_id" onclick="getFee(this.value)">
<?php do { ?>
<option value="<?php echo $row_dep['class_id']?>"
<?php if (!(strcmp($row_dep['class_name'], $row_dep['class_name']))) {
echo "selected='"selected'"";
} ?>>
<?php echo $row_dep['class_name']?></option>
<?php } while ($row_dep = mysql_fetch_assoc($dep));
$rows = mysql_num_rows($dep);
if($rows > 0) {
mysql_data_seek($dep, 0);
$row_dep = mysql_fetch_assoc($dep);
} ?>
</select>
</div>
当我选择类时,以下部分会自动填充输入框及其来自 getfee 的相应值.php。
<div class="form-group" id="sem">
</div>
<div class="form-group">
<label class="control-label col-lg-5" for="dp1">Date of Admission
</label>
<div class="col-lg-6">
<input type="text" name="date" class="form-control" value="<?php echo date('Y-m-d');?>" data-date-format="yyyy-mm-dd" id="dp2">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-5">Session <?php echo date('Y');?></label>
<div class="col-lg-6">
<select class="form-control chzn-select" name="year">
<option selected value="<?php echo date('Y');?>">Session <?php echo date('Y');?></option>
<option value="2010">Session-2010</option>
<option value="2011">Session-2011</option>
<option value="2012">Session-2012</option>
<option value="2013">Session-2013</option>
<option value="2014">Session-2015</option>
<option value="2015">Session-2015</option>
<option value="2016">Session-2016</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-5">Photo of Student</label>
<div class="col-lg-6">
<div class="fileinput fileinput-new" data-provides="fileinput">
<div class="fileinput-preview thumbnail" data-trigger="fileinput" title="image" style="width: 200px; height: 150px;"></div>
<div>
<span class="btn btn-default btn-file"><span class="fileinput-new">Upload Photo</span> <span class="fileinput-exists">Change</span>
<input type="file" placeholder="Photo Upload" name="...">
</span>
<a href="#" class="btn btn-default fileinput-exists" data-dismiss="fileinput">Remove</a>
</div>
</div>
</div>
</div>
<input type="hidden" name="MM_insert" value="form1">
<div class="form-group">
<div class="col-lg-4">
<input type="submit" class="btn btn-success btn-lg" value="submit">
</div>
</div>
</form>
代码工作正常,但是当我点击提交按钮时,getfee的所有输入框的值.php消失并变为空。这是我的收费.php。
<?php
require_once("configuration/config.php");
$class=intval($_GET['class']);
if (!$connection) {
die('Could not connect: ' . mysql_error());
}
$query="SELECT * FROM admission_fee WHERE class_id='$class'";
$result=mysql_query($query);
?>
<?php while($row=mysql_fetch_assoc($result)) { ?>
<div class="form-group">
<label class="control-label col-lg-5">Tuition Fee</label>
<div class="col-lg-6">
<input type="text" name="tuition" class="form-control" value="<?php echo $row['tution_fee']; ?>">
</div>
<label class="control-label col-lg-5">Admission Fee</label>
<div class="col-lg-6">
<input type="text" name="admission" class="form-control" value="<?php echo $row['admission']; ?>">
</div>
<label class="control-label col-lg-5">Annual Fee</label>
<div class="col-lg-6">
<input type="text" name="annual_fee" class="form-control" value="<?php echo $row['annual_fee']; ?>">
</div>
<label class="control-label col-lg-5">Development Fee</label>
<div class="col-lg-6">
<input type="text" name="development_fee" class="form-control" value="<?php echo $row['development_fee']; ?>">
</div>
<label class="control-label col-lg-5">Saraswati Puja Fee</label>
<div class="col-lg-6">
<input type="text" name="puja_fee" class="form-control" value="<?php echo $row['saraswati_puja_fee']; ?>">
</div>
<label class="control-label col-lg-5">Identity Card Fee</label>
<div class="col-lg-6">
<input type="text" name="id_fee" class="form-control" value="<?php echo $row['identity_card_fee']; ?>">
</div>
<label class="control-label col-lg-5">Computer Fee</label>
<div class="col-lg-6">
<input type="text" name="computer_fee" class="form-control" value="<?php echo $row['computer_fee']; ?>">
</div>
<label class="control-label col-lg-5">Forms & Prospectus Fee</label>
<div class="col-lg-6">
<input type="text" name="prospectus" class="form-control" value="<?php echo $row['forms_and_prospectus_fee']; ?>">
</div>
<label class="control-label col-lg-5">TC Charges</label>
<div class="col-lg-6">
<input type="text" name="tc_charge" class="form-control" value="<?php echo $row['TC_charges']; ?>">
</div>
<label class="control-label col-lg-5">Other Charges</label>
<div class="col-lg-6">
<input type="text" name="other_charges" class="form-control" value="<?php echo $row['other_charges']; ?>">
</div>
</div>
<?php } ?>
Javascript.js文件如下
<script>
function getVal() {
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function getFee(class_id) {
var strURL="getFee.php?class="+class_id;
var req = getVal();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
//document.getElementById('sem').innerHTML=req.responseText;
req.responseText;
var form=document.getElementById("forma");
var d=document.createElement("div");
form.appendChild(d);
var div=document.getElementById("sem");
div.innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:'n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
</script>
请帮助我。我不知道如何超越这一点。
时间。在每次更改时重新初始化您的 dom。或如果你正在使用jQuery,只需将你的js放在两者之间:
$(function(){//your code});
此代码段适用于 jquery 存在后的每个 dom 更改、事件和页面加载。
相关文章:
- Javascript生成的表单未提交
- 数组在递归方法中设置为null
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- HTML表单提交时未执行外部函数
- 在POST中将html表作为csv提交
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 提交后保留下拉选择的值
- 键入最后一位数字后自动提交
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 阻止表单元素提交
- 无法获取属性'selectedIndex'的未定义引用或null引用
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- Jquery提交表单而不刷新
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- AJAX 创建的输入元素的值在提交时变为 null
- 如果值为null,请在提交前使用js或jQuery更改输入文本值
- 如果使用ajax请求数据,则在asp.net表单中提交时模型为null
- 无法获取属性'的值;提交':对象为null或未定义