有没有其他方法使用PHP创建一个json对象?

时间:2017-03-18 21:08:21

标签: php jquery json

我希望你能帮助我。让我解释一下我在做什么:

我从一个表单发送一个名字并对名为“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>&nbsp;</td>
                    <td>&nbsp;</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;


?>

0 个答案:

没有答案