我有一个模态表单可以将员工工作时间戳写入 SQL 数据库。我从下拉菜单中选择员工,并使用 id 标签通过 javascript 函数填充姓名和姓氏输入框。当我提交表单时,数据使用 php 写入数据库。问题是我无法将 javascript 字符串转换为 php 字符串或将输入标签的 id 标签分配给 php 字符串。我知道在输入中写入我可以使用 php value="...." 分配值。
$nome = '<script>document.writeln(a);</script>';
不起作用
这里的代码
<div class="modal-body">
<input type="hidden" name="edit_id" value="<?php echo $id; ?>">
<div class="form-group">
<label class="control-label col-sm-2" for="dipendente">Dipendente:</label>
<div class="col-sm-4">
<select id="dipendente" name="dipendente" onchange="nomeCognome()">
<option value="dipendente">Seleziona dipendente</option>
<?php
$sqlOperatore="SELECT nome, cognome FROM login ORDER BY nome ASC";
$resultOperatore = $conn->query($sqlOperatore);
if ($resultOperatore->num_rows > 0) {
while($row = $resultOperatore->fetch_assoc()) {
$nome = $row['nome'];
$cognome = $row['cognome'];
$dipendente = $nome . ' ' . $cognome;
?>
<option><?php echo $dipendente; ?></option>
<?php } ?>
</select>
</div>
<?php } ?>
<label class="control-label col-sm-2" for=" "> </label>
<div class="col-sm-4"></div>
</div>
<br>
<div class="form-group">
<label class="control-label col-sm-2" for="nome">Nome:</label>
<div class="col-sm-4" id="nome">
<input type="text" class="form-control" id="nome" name="nome" readonly> </div>
<label class="control-label col-sm-2" for="cognome">Cognome:</label>
div class="col-sm-4" id="cognome">
<input type="text" class="form-control" id="cognome" name="cognome" readonly> </div>
</div>
<br>
<script type="text/javascript">
function nomeCognome() {
var x = document.getElementById("dipendente").value;
var [a, b, c] = x.split(' ');
document.getElementById("nome").innerHTML = [a];
document.getElementById("cognome").innerHTML = [b, c].join(' ');
}
</script>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" name="add_item"><span class="glyphicon glyphicon-plus"></span> Aggiungi</button>
<button type="button" class="btn btn-warning" data-dismiss="modal"><span class="glyphicon glyphicon-remove-circle"></span> Annulla</button>
</div>
<?php
//Add Matricola
if(isset($_POST['add_item'])){
$edit_id = $_POST['edit_id'];
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$sql = "INSERT INTO gest_personale.timbratura (nome, cognome)
VALUES ('$nome', '$cognome')";
if ($conn->query($sql) === TRUE) {
echo '<script>window.location.href="visualizzaTimbrature.php"</script>';
} else {
echo "Errore: " . $sql . "<br>" . $conn->error;
}
}
?>
我收到以下错误/通知:通知:未定义索引:名称和通知:未定义索引:cognome
您正在使用.innerHTML
为您的输入分配值,但这里id="nome"
为 div 使用两个地方,为 .so 使用相同的输入cognome
。因此,.innerHTML
删除input-box
div 内部并用新文本替换它,这就是您提交表单时出现未定义索引错误的原因,因为有不存在具有所需值的输入。
相反,在添加之前和之后使用.value
为 input 分配值并删除.readOnly = false
属性.readOnly = true
。
演示代码:
function nomeCognome() {
//remove readonly first
document.getElementById("nome").readOnly = false;
document.getElementById("cognome").readOnly = false;
var x = document.getElementById("dipendente").value;
var [a, b, c] = x.split(' ');
//use .value to add value in input values
document.getElementById("nome").value = [a];
document.getElementById("cognome").value = [b, c].join(' ');
//add readonly again..
document.getElementById("nome").readOnly = true;
document.getElementById("cognome").readOnly = true;
}
<div class="modal-body">
<input type="hidden" name="edit_id" value="<?php echo $id; ?>">
<div class="form-group">
<label class="control-label col-sm-2" for="dipendente">Dipendente:</label>
<div class="col-sm-4">
<select id="dipendente" name="dipendente" onchange="nomeCognome()">
<option value="dipendente">Seleziona dipendente</option>
<option>
Sss abc
</option>
<option>
Sss11 abc1
</option>
</select>
</div>
<label class="control-label col-sm-2" for=" "> </label>
<div class="col-sm-4"></div>
</div>
<br>
<div class="form-group">
<label class="control-label col-sm-2" for="nome">Nome:</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="nome" name="nome" readonly="readonly"> </div>
<label class="control-label col-sm-2" for="cognome">Cognome:</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="cognome" name="cognome" readonly="readonly"> </div>
</div>
<br>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" name="add_item"><span class="glyphicon glyphicon-plus"></span> Aggiungi</button>
<button type="button" class="btn btn-warning" data-dismiss="modal"><span class="glyphicon glyphicon-remove-circle"></span> Annulla</button>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句