我希望你能帮助我。让我解释一下我在做什么:
我从一个表单发送一个名字并对名为“test”的数据库进行查询,我使用$ .getJSON从php页面获取我的json对象,但是我可以在不同的情况下创建一个json obj办法。 我想改变的部分是PHP之一,因为这样就不得不为每一行分配一些东西:“$ arreglo-> edad = $ row [”EDAD“];” 如果我有一个20列或类似的表,这将是一个问题。 谢谢! :)
HTML
<div class="contenido">
<div class="principal">
<form method="get" action="login2.php" id="login">
<table>
<tr>
<td>
<label for="usuario">Usuario:</label>
</td>
<td>
<input type="text" name="usuario" id="usuario">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="boton" id="boton" value="Enviar">
</td>
</tr>
</table>
</form>
<div id="contenidos_externos"></div>
</div>
</div>
JS
$(document).ready(function() {
$("#login").submit(function() {
var datosFormulario = $(this).serialize();
$.getJSON("login2.php", datosFormulario, procesarDatos);
return false;
});
function procesarDatos(datos_devueltos) {
$("#contenidos_externos").html("Nombre: " + datos_devueltos.nombre + "<br>Edad: " + datos_devueltos.edad);
}
});
PHP
<?php
$conn=null;
if(!$conn){
try{
$conn = new PDO("mysql:host=localhost;dbname=test","root","");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$conn->exec("SET CHARACTER SET UTF8");
}catch(PDOException $e){
die("Ha habido un error al conectar con nuestra base de datos, lo sentimos :C. " . $e->getMessage());
}
}
$el_usuario=isset($_GET['usuario']) ? $_GET['usuario'] : $_POST['usuario'];
$sql = "SELECT * FROM USUARIOS WHERE NOMBRE = :nomb";
$query = $conn->prepare($sql);
$query->execute(array(":nomb"=>$el_usuario));
$array = $query->fetchALL(PDO::FETCH_ASSOC);
$arreglo = new stdClass();
foreach($array as $row){
$arreglo->nombre = $row["NOMBRE"];
$arreglo->edad = $row["EDAD"];
}
$json = json_encode($arreglo);
echo $json;
?>