- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你能帮我解决这个问题吗:
我正在 php 中的搜索页面上工作,并尝试通过 Jquery-AJAX-JSON 从 mysql 表中检索一条特定记录,不方便的是我没有从 process.php(文件查询数据库)显示在buscador.php中,而不是我在firebug中遇到错误,如图所示
你能告诉我我的错误是什么吗,这是我的表单buscador.php
<html lang="es-ES">
<head>
<meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8">
<link type="text/css" rel="stylesheet" href="content/estilos.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="javascript/jquery2.js" type="text/javascript"></script>
<title>BUSCADOR</title>
</head>
<form method="post" id="form_id" action="process2.php">
<fieldset>
<legend> Buscador Asincrono</legend>
<p>ID a buscar: <input type="text" name="ID_name" id="ID_id"/><div id="estado_id"></div></p>
<p><input type="submit" id="submit_id" value="Buscar"/></p>
<img src="imagenes/cargando.gif" id="LoadingImage" style="display:none" align="center"/>
<div id="ajax_id"><b>Person info will be listed here...</b></div>
<div id="msg">
<table id="infoemp" border="1" style="display:none" align="center">
<thead>
<th>ID</th>
<th>Nombre</th>
<th>Cargo</th>
</thead>
<tbody></tbody>
</table>
</div>
</fieldset>
</form>
</html>
这是我的 jquery2.js 文件
$(document).ready(function() {
$("#form_id").submit(function(e){
e.preventDefault();
preparar();
if(validaForm()){
requestInfo();
}
});
});
function preparar(){
$("#submit_id").hide();
$("#ajax_id").html("");
$("#LoadingImage").show();
$("#ajax_id").html("<div class='cargando'> realizando busqueda</div>");
}
function validaForm(){
var id_val = $("input#ID_id").val().trim();
if((id_val=="") || id_val.replace(/s+/,'') == ''){
alert("Favor ingrese el ID");
$("input#ID_id").addClass("posicionamiento");
$("#ajax_id").html("<div class='error'>Debe especificar el nombre</div>");
return false;
}else{
$("input#ID_id").removeClass("posicionamiento");
$("#div_id").empty();
}
return true;
}
function requestInfo(){
var url = $("#form_id").attr('action');
var data = $("#form_id").serialize();
var type = $("#form_id").attr('method');
$.ajax({
url:url,
data:data,
type:type,
cache: false,
contentType: "application/x-www-form-urlencoded",
dataType: 'json',
encode: true,
})
.done(function(data) {
if(data.success == "true"){
$("#ajax_id").html("");
//$("#ajax_id").html("<div class='cargando'>" +data.users.status+ "</div>");
$("#ajax_id").html("<div class='cargando'>" +data.info.total+ "</div>");
//$("#ajax_id").html(data.users.status).addClass("cargando");
$("#submit_id").show();
$("#LoadingImage").fadeOut();
$("#infoemp").show();
var output = "<h2>" +data.total+ " empleado encontrado</h2>";
output += '<ul>';
output += '<li>' + data.Nombre + ': ' + data.cargo + "</li>";
output += '</ul>';
$("#ajax_id").html(output);
} else { $("#ajax_id").html(data.success).addClass("cargando"); }
})
.fail(function( jqXHR, textStatus, errorThrown ) {
$("#LoadingImage").fadeOut();
$("#ajax_id").html(textStatus).addClass("cargando");
if ( console && console.log ) {
console.log( "La solicitud a fallado: " + textStatus);
}
});
}
这是我的 process2.php 文件
<?php
$bd = "ejemplo";
$server ="localhost";
$user = "root";
$password = "";
$errors = array(); // array para almacenar los errores
$data = array(); // array para devolver info
if (isset($_POST['Submit']) && isset($_POST['ID_name'])) {
$valor = filter_var($_POST['ID_name'], FILTER_SANITIZE_STRING);
if ($valor == null)
$errors['ID_name'] = 'Debe especificar el ID de busqueda.';
$data['success'] = false;
$data['errors'] = $errors;
} else {
obtenerEmpleados($valor);
}
function obtenerEmpleados( $valor ) {
$mysqli = @mysqli_connect($server, $user, $password, $bd);
if( ! $mysqli ) die( "Error de conexion ".mysqli_connect_error() );
if(!$prepared_st = $mysqli->prepare("SELECT * FROM empleado_php WHERE ID = ?")){
die("Error creando la consulta");
}
if(!$prepared_st->bind_param("s",$valor)){
die("Error vinculando parametro");
}
if(!$prepared_st->execute()){
die("Fallo en la ejecución");
}
$result = $prepared_st->get_result();
if($result->num_rows>0){
$data['success'] = true;
$data['total'] = sprintf("Se han encontrado %d usuarios", $result->num_rows);
$fila = $result->fetch_assoc();
$data['Nombre'] = $fila['Nombre'];
$data['cargo'] = $fila['cargo']
}
$prepared_st->close();
$mysqli->close();
header('Content-type: application/json; charset=utf-8');
echo json_encode($data);
}
?>
最佳答案
parsererror
消息来自 JSON 解析器,它在尝试解析的字符串中发现了错误。可能该字符串根本不是 JSON。
您还没有发布浏览器实际接收的字符串,但我怀疑正在发生这种情况:
您已在 PHP 代码的主体中定义了数据库连接变量,但尝试在此处的函数中使用它们:
function obtenerEmpleados( $valor ) {
$mysqli = @mysqli_connect($server, $user, $password, $bd);
if( ! $mysqli ) die( "Error de conexion ".mysqli_connect_error() );
变量超出范围,因此您的连接失败,并且您的脚本返回字符串Error de conexion...
。这不是 JSON,但您的 Javascript 代码已被告知将其视为 JSON,因此您会在浏览器中看到解析错误。
您需要将连接变量作为参数传递到函数中,或者将它们声明为全局变量。
关于php - 错误 : parsererror using Jquery, AJAx 和 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30337399/
我在优化 JOIN 以使用复合索引时遇到问题。我的查询是: SELECT p1.id, p1.category_id, p1.tag_id, i.rating FROM products p1
我有一个简单的 SQL 查询,我正在尝试对其进行优化以删除“使用位置;使用临时;使用文件排序”。 这是表格: CREATE TABLE `special_offers` ( `so_id` int
我有一个具有以下结构的应用程序表 app_id VARCHAR(32) NOT NULL, dormant VARCHAR(6) NOT NULL, user_id INT(10) NOT NULL
此查询的正确索引是什么。 我尝试为此查询提供不同的索引组合,但它仍在使用临时文件、文件排序等。 总表数据 - 7,60,346 产品= '连衣裙' - 总行数 = 122 554 CREATE TAB
为什么额外的是“使用where;使用索引”而不是“使用索引”。 CREATE TABLE `pre_count` ( `count_id`
我有一个包含大量记录的数据库,当我使用以下 SQL 加载页面时,速度非常慢。 SELECT goal.title, max(updates.date_updated) as update_sort F
我想知道 Using index condition 和 Using where 之间的区别;使用索引。我认为这两种方法都使用索引来获取第一个结果记录集,并使用 WHERE 条件进行过滤。 Q1。有什
I am using TypeScript 5.2 version, I have following setup:我使用的是TypeScript 5.2版本,我有以下设置: { "
I am using TypeScript 5.2 version, I have following setup:我使用的是TypeScript 5.2版本,我有以下设置: { "
I am using TypeScript 5.2 version, I have following setup:我使用的是TypeScript 5.2版本,我有以下设置: { "
mysql Ver 14.14 Distrib 5.1.58,用于使用 readline 5.1 的 redhat-linux-gnu (x86_64) 我正在接手一个旧项目。我被要求加快速度。我通过
在过去 10 多年左右的时间里,我一直打开数据库 (mysql) 的连接并保持打开状态,直到应用程序关闭。所有查询都在连接上执行。 现在,当我在 Servicestack 网页上看到示例时,我总是看到
我使用 MySQL 为我的站点构建了一个自定义论坛。列表页面本质上是一个包含以下列的表格:主题、上次更新和# Replies。 数据库表有以下列: id name body date topic_id
在mysql中解释的额外字段中你可以得到: 使用索引 使用where;使用索引 两者有什么区别? 为了更好地解释我的问题,我将使用下表: CREATE TABLE `test` ( `id` bi
我经常看到人们在其Haxe代码中使用关键字using。它似乎在import语句之后。 例如,我发现这是一个代码片段: import haxe.macro.Context; import haxe.ma
这个问题在这里已经有了答案: "reduce" or "apply" using logical functions in Clojure (2 个答案) 关闭 8 年前。 “and”似乎是一个宏,
这个问题在这里已经有了答案: "reduce" or "apply" using logical functions in Clojure (2 个答案) 关闭 8 年前。 “and”似乎是一个宏,
我正在考虑在我的应用程序中使用注册表模式来存储指向某些应用程序窗口和 Pane 的弱指针。应用程序的一般结构如下所示。 该应用程序有一个 MainFrame 顶层窗口,其中有几个子 Pane 。可以有
奇怪的是:。似乎a是b或多或少被定义为id(A)==id(B)。用这种方式制造错误很容易:。有些名字出人意料地出现在Else块中。解决方法很简单,我们应该使用ext==‘.mp3’,但是如果ext表面
我遇到了一个我似乎无法解决的 MySQL 问题。为了能够快速执行用于报告目的的 GROUP BY 查询,我已经将几个表非规范化为以下内容(该表由其他表上的触发器维护,我已经同意了与此): DROP T
我是一名优秀的程序员,十分优秀!