У меня есть форма, размещенная в Linux, которая имеет разные поля (имя, адрес электронной почты и флажок). Данные, собранные из формы, поступают в базу данных SQL, размещенную в Windows. Оба сервера находятся в одной сети, поэтому для выполнения этого шага ввода данных формы в bd я использовал этот код:
<?php
$con = mysqli_connect("192.168.0.3", "vmb", "vmb2", "logytel") or die ("Problemas al conectar");
$resultado = mysqli_query($con, "SELECT * FROM prueba");
$fila = $resultado->fetch_assoc()
echo $fila['nombre'];
echo $fila['instalacion'];
echo $fila['email'];
echo $fila['fallo_fisico'];
?>
<!DOCTYPE html>
<html>
<head>
<title>Formulario</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body>
<div class="form">
<form method="POST" id="formulario" name="formulario" role="form" action="guardar.php">
<div class="row">
<div class="col-md-12">
<div class="col-md-6">
<br><br>
<br><label for="nombre">Su nombre</label>
<input type="text" name="nombre" placeholder="Nombre" required class="form-control">
</div>
<div class="col-md-6">
<a title="Logytel" href="http://logytel.es"><img class="logytel" src="https://i2.wp.com/logytel.es/wp-content/uploads/2018/06/cropped-LOGO_Logytel_2012_R_485C_24x10_8_Blanco.png" alt="Logytel" /></a>
</div>
</div>
</div>
<br><p>¿El equipo está correctamente instalado?</p>
<div class="row">
<div class="col-md-12">
<div class="col-md-2">
<br><label class="container">Sí
<input type="checkbox" name="instalacion" value="1"> <br>
<span class="checkmark"></span>
</div>
<div class="col-md-3">
<br><label class="container">No
<input type="checkbox" name="instalacion" value="0"> <br>
<span class="checkmark"></span>
</div>
<div class="col-md-7">
<br><br>
<br><label for="email">Correo electrónico</label>
<input type="email" name="email" placeholder="usuario@gmail.com" required class="form-control">
</div>
</div>
</div>
<p>¿El equipo tiene algún fallo físico?</p>
<div class="row">
<div class="col-md-12">
<div class="col-md-2">
<br><label class="container">Sí
<input type="checkbox" name="fallo_fisico" value="1"> <br>
<span class="checkmark"></span>
</div>
<div class="col-md-3">
<br><label class="container">No
<input type="checkbox" name="fallo_fisico" value="0"> <br>
<span class="checkmark"></span>
</div>
</div>
</div>
<button id="myBtn" class="button" input type="submit" value="Enviar" name="resultado">Enviar</button>
</form>
</div>
<script>
var x, i, j, selElmnt, a, b, c;
/*look for any elements with the class "custom-select":*/
x = document.getElementsByClassName("custom-select");
for (i = 0; i < x.length; i++) {
selElmnt = x[i].getElementsByTagName("select")[0];
/*for each element, create a new DIV that will act as the selected item:*/
a = document.createElement("DIV");
a.setAttribute("class", "select-selected");
a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;
x[i].appendChild(a);
/*for each element, create a new DIV that will contain the option list:*/
b = document.createElement("DIV");
b.setAttribute("class", "select-items select-hide");
for (j = 1; j < selElmnt.length; j++) {
/*for each option in the original select element,
create a new DIV that will act as an option item:*/
c = document.createElement("DIV");
c.innerHTML = selElmnt.options[j].innerHTML;
c.addEventListener("click", function(e) {
/*when an item is clicked, update the original select box,
and the selected item:*/
var y, i, k, s, h;
s = this.parentNode.parentNode.getElementsByTagName("select")[0];
h = this.parentNode.previousSibling;
for (i = 0; i < s.length; i++) {
if (s.options[i].innerHTML == this.innerHTML) {
s.selectedIndex = i;
h.innerHTML = this.innerHTML;
y = this.parentNode.getElementsByClassName("same-as-selected");
for (k = 0; k < y.length; k++) {
y[k].removeAttribute("class");
}
this.setAttribute("class", "same-as-selected");
break;
}
}
h.click();
});
b.appendChild(c);
}
x[i].appendChild(b);
a.addEventListener("click", function(e) {
/*when the select box is clicked, close any other select boxes,
and open/close the current select box:*/
e.stopPropagation();
closeAllSelect(this);
this.nextSibling.classList.toggle("select-hide");
this.classList.toggle("select-arrow-active");
});
}
function closeAllSelect(elmnt) {
/*a function that will close all select boxes in the document,
except the current select box:*/
var x, y, i, arrNo = [];
x = document.getElementsByClassName("select-items");
y = document.getElementsByClassName("select-selected");
for (i = 0; i < y.length; i++) {
if (elmnt == y[i]) {
arrNo.push(i)
} else {
y[i].classList.remove("select-arrow-active");
}
}
for (i = 0; i < x.length; i++) {
if (arrNo.indexOf(i)) {
x[i].classList.add("select-hide");
}
}
}
/*if the user clicks anywhere outside the select box,
then close all select boxes:*/
document.addEventListener("click", closeAllSelect);
</script>
</body>
</html>
Затем я искал, как это сделать наоборот. Введите поле, например, select, чтобы отобразить данные, зарегистрированные в базе данных. Я искал, но я нахожу только часть php-sql, а не наоборот.
Я приведу практический пример для лучшего понимания: у меня есть бланк, который будет использоваться работниками, которые покидают компанию для проверки оборудования. В поле «Сохранить работу сотрудника» будет введено поле, в котором он может написать часть своего имени, и автоматически, подключившись к соответствующему bd, его имя появится в качестве предложения для ввода.
Версия PHP: 7 MySQL Server Windows Form, размещенная на Fedora 28 База данных, размещенная на Windows Server 2008r2
Esto es un archivo "index.php", espero que te sirva:
<?php
echo"Hello World !<br><br>";
if(![110]POST):
$servername = "localhost";
$username = "root";
$password = "xxxx";
$dbname = "bd_Trabajadores";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
// Create database
$sql_Trab = "CREATE DATABASE IF NOT EXISTS $dbname;";
if($conn->query($sql_Trab) === TRUE):
// echo "Base de Data creada exitosamente";
else:
echo "Error creando Base de Data: " . $conn->error; exit;
endif;
// Conectamos con el controlador de MariaDB / MySQL //
$conn = new mysqli($servername, $username, $password, $dbname);
//
$sql = "CREATE TABLE IF NOT EXISTS t_Trabajadores
(n_ID INT (11),
c_Nom CHAR(30),
c_CD CHAR(15),
PRIMARY KEY (n_ID),
UNIQUE KEY idx_Nom (c_Nom));";
// echo"<br>";
if($conn->query($sql) === TRUE):
// echo "Tabla Trabajadores creada exitosamente";
else:
echo "Error creando Tabla Trabajadores: " . $conn->error; exit;
endif;
// Buscamos los Registros en Tabla de Trabajadores //
//
$sql_Trab = "SELECT * FROM t_Trabajadores;";
//
if($sel_Trab = $conn -> query($sql_Trab)):
// echo "Consulta a la Tabla de Trabajadores exitosa";
else:
//
echo "Línea ".__LINE__."<br><br>Error:<br><br>" . $sql_Trab . "<br>" . $bd -> error; exit;
//
endif;
//
$sql = "INSERT IGNORE INTO t_Trabajadores
(n_ID, c_Nom, c_CD ) VALUES
(1 , 'ARMANDO SANCHEZ TORRES' , 'BARCELONA'),
(2 , 'FERNANDO GALICIA ZAMORA', 'MADRID' ),
(3 , 'OSWALDO ZEPEDA TOLEDO' , 'CDMX' ),
(4 , 'PEDRO ALARCON HIDALGO' , 'MONTERREY')";
//
if($conn->query($sql) === TRUE):
// echo "New record created successfully";
else:
echo "Error: " . $sql . "<br>" . $conn->error; exit;
endif;
//
// $conn->close();
?>
<html>
<body>
<form action=index.php method=post name=index_php id=index_php>
<br><br>
<select name=sel_Trab id=sel_Trab onClick="document.getElementById('txt_c_CD').value=this.value;"><option>ELIJA UNA TRABAJADOR</option>
<?php
//
while($reg_Trab = $sel_Trab -> fetch_assoc()):
//
$n_ID = $reg_Trab['n_ID' ];
$c_Nom = $reg_Trab['c_Nom'];
$c_CD = $reg_Trab['c_CD' ];
//
echo "<option value='$n_ID - $c_Nom - $c_CD'> $c_Nom </option>";
//
endwhile; // $reg_Trab = $sel_Trab -> fetch_assoc()
// ?>
</select>
<input type=text id=txt_c_CD size=50px>
<br><br>
<button type=submit id=btn_Envio value=ENVIAR>ENVIAR</button>
</body>
</html>
<?php
else: // ![110]POST
if([110]POST) {
foreach ([110]POST as $clave=>$valor) {
echo "El valor de < $clave > es: < $valor ><br>";
}
} else {
echo 'No hay [110]POST<br>';
}
echo "<br>";
//
$sel_Trab = [110]POST['sel_Trab'];
//
$pos_Fin = strpos ( $sel_Trab , ' - ' );
$n_ID = substr( $sel_Trab, 0, $pos_Fin ); echo ".$n_ID. " . strlen( $n_ID ) . "<br>";
//
$pos_Ini = $pos_Fin + 3;
$pos_Fin = strpos ( $sel_Trab , ' - ', $pos_Ini );
$lon_Str = $pos_Fin - $pos_Ini;
$c_Nom = substr( $sel_Trab, $pos_Ini, $lon_Str ); echo ".$c_Nom. " . strlen( $c_Nom ) . "<br>";
//
$pos_Ini = $pos_Fin + 3;
$lon_Str = strlen( $sel_Trab ) - $pos_Ini;
$c_CD = substr( $sel_Trab, $pos_Ini, $lon_Str ); echo ".$c_CD. " . strlen( $c_CD ) . "<br>";
//
endif; // ![110]POST
//
// Fin del Código