He estado buscando la solución pero no encuentro nada que funcione. Estoy tratando de obtener un montón de datos de la base de datos y luego a través de los campos de entrada de autocompletar AJAX en un formulario. Para hacer esto, he decidido usar json, porque ¿por qué no? O bien, he estado pensando en devolver una cadena delimitada y luego en tokenizarla, lo que a primera vista hubiera sido mucho más fácil y me hubiera ahorrado el dolor de cabeza ... Sin embargo, como he decidido usar JSON, supongo que debería quedarse con eso y descubrir lo que salió mal! Lo que sucede es que cuando se ejecuta la función get_member_function(), aparece un error en un diálogo de alerta y se lee "[object Object]". Lo he intentado también con la solicitud GET y estableciendo contentType en "application/json; charset = utf-8 ". Por desgracia, no hay dados. ¿Alguien puede sugerir lo que estoy haciendo mal? Cuídate, Piotr.
Mi función javascript/jQuery es la siguiente:
function get_member_info()
{
var url = "contents/php_scripts/admin_scripts.php";
var id = $("select[ name = member ] option:selected").val();
$.ajax(
{
type: "POST",
dataType: "json",
url: url,
data: { get_member: id },
success: function(response)
{
$("input[ name = type ]:eq(" + response.type + ")").attr("checked", "checked");
$("input[ name = name ]").val(response.name);
$("input[ name = fname ]").val(response.fname);
$("input[ name = lname ]").val(response.lname);
$("input[ name = email ]").val(response.email);
$("input[ name = phone ]").val(response.phone);
$("input[ name = website ]").val(response.website);
$("#admin_member_img").attr("src", "images/member_images/" + response.image);
},
error: function(error)
{
alert(error);
}
});
}
y el código correspondiente en el "contenido/php_scripts/admin_scripts.php" es el siguiente:
if(isset($_POST[ "get_member" ]))
{
$member_id = $_POST[ "get_member" ];
$query = "select * from members where id = '$member_id'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$type = $row[ "type" ];
$name = $row[ "name" ];
$fname = $row[ "fname" ];
$lname = $row[ "lname" ];
$email = $row[ "email" ];
$phone = $row[ "phone" ];
$website = $row[ "website" ];
$image = $row[ "image" ];
$json_arr = array("type" => $type, "name" => $name, "fname" => $fname, "lname" => $lname, "email" => $email, "phone" => $phone, "website" => $website, "image" => $image);
echo json_encode($json_arr);
}
Probar alerta (JSON.stringify (error)) ya que debería mostrar más información sobre el error en el cuadro de diálogo de alerta –
Supongo que hay un error de PHP antes de que se haga eco de JSON. Compruebe su función de búsqueda, está abordando los datos como $ row ['clave'], por lo que debería haber usado mysql_fetch_assoc en su lugar, creo. Cambiar '$ row = mysql_fetch_array ($ result);' a '$ row = mysql_fetch_assoc ($ result);' y ver si funciona. –
Preste atención: si no hay desinfección previa, es vulnerable a la inyección de SQL. – Andrea