我有一个表单,其中有一个用于搜索记录的字段,并从结果中使用搜索结果填写表单的其余字段。
搜索是通过搜索按钮的操作中的 get 方法执行的。
在本例中,表单字段已使用收集到的 locador 106000 号数据来完成。
http://localhost/sfi/index.php?number_locator=106000&search-locator=
我的问题是,当我在没有进行任何搜索的情况下访问主页时,所有其他字段都会消失。
这是因为它们在 foreach 内?
如果我离开 foreach 而不关闭,表单会在字段中返回错误。
<?php foreach ($new_array as $dataForm) ?>
<?php
if (isset($_GET['search-locator'])){
// Connect to DB
$conex = mysql_connect("localhost","root","");
// Select DB
$selectDB = mysql_select_db("payment_locations",$conex);
// Check that the search field is not empty
if (empty($_GET['number_locator'])) {
$message = "El campo n° de locador está vacio";
echo "<script type='text/javascript'>
alert('$message');
</script>";
}
// Start search
else {
// Save field content
$search = $_GET['number_locator'];
// Query
$sql = "SELECT * FROM without_retention WHERE id_locator like '$search'";
// Execute query
$result = mysql_query($sql);
if (mysql_num_rows($result) < 1) {
echo "No hay resultados";
}
else {
while ($row = mysql_fetch_array($result)){
$new_array[] = $row;
}
}
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<?php foreach ($new_array as $dataForm): ?>
<div class="row col-centered-form-input">
<!--
<div class="col-md-12">
<div class="form-group">
<label class="form-font" for="inputEmail">Lugar y fecha de pago:</label>
<input type="text" id="inputDate" class="form-control input-borders form-font input-size" value="<?php echo $fecha; ?>">
</div>
</div>
-->
<div class="col-md-12">
<div class="form-group">
<label class="form-font input-size" for="inputEmail">Lugar y fecha de pago:</label>
<div class="input-group">
<input id="date-picker-2" type="text" class="date-picker form-control input-borders" />
<label for="date-picker-2" class="input-borders input-group-addon btn">
<span class="glyphicon glyphicon-calendar"></span>
</label>
</div>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label class="form-font" for="inputEmail">Recibí de Publicartel la suma de:</label>
<input type="text" class="form-control input-borders input-size" maxlength="15" value="<?php echo $dataForm['payment']; ?>" disabled>
</div>
</div>
</div>
<?php endforeach; ?>
<div class="form-group">
<div class="row col-centered-form-input">
<div class="col-xs-6">
</div>
<div class="col-xs-6">
<label class="form-font input-medium-size-right" for="inputEmail">Firma:</label>
<input class="form-control input-medium-size-right input-borders" type="text">
</div>
</div>
</div>
出于逻辑原因,我没有放置所有字段以不填充代码主题:)
最佳答案
可以这样吗?您可以检查数据,如果数据为空则显示默认表单。
<?php
if(!empty($new_array)){
foreach ($new_array as $dataForm){
//that your form elements
}
}else{
// here the default form elements
}
?>
关于php - 使用数据库中的数据填写表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35924431/