Intereting Posts
php: установка часового пояса по смещению UTC PHP, Zend, require_once: «не удалось открыть поток» и «Не удалось открыть окно ». Структуры данных PHP (Java-подобные) Коллекции mysql_connect (): Библиотека несоответствий младших версий библиотеки заголовков и клиентской библиотеки: 100005 Как установить расширение Intl для Twig Определите, является ли строка допустимым географическим местоположением mysql_insert_id, не возвращает последний вставленный id, когда я помещаю его в функцию Утечка памяти при выполнении запроса Doctrine в цикле Symfony2: как переопределить основной шаблон? Как управлять страницами / формами в приложении PHP? Как подключить базу данных Oracle от PHP Извлечение данных utf-8 из базы данных Как превратить строки в столбцы? владелец nginx и php-fpm Я нарушаю любую «хорошую практику php» в следующем массиве php, который имеет дело с 3 (человеческими) языками?

Загрузка данных mysqli php через вызов ajax

То, что я пытаюсь сделать, это вызвать некоторые данные базы данных через ajax и php. Но вызов ajax не работает, и я не могу найти решение в Интернете.

Итак, вот мой код:

test.php

<?php include_once 'db_class.php'; $cat = $_GET['cat']; $dbconn = new dbconn('localhost', 'root', 'somepsw', 'blog'); $dbconn->set_query("select * from posts where category = '".$cat."'"); echo '<br/>'.$dbconn->query.'<br/>'; $result = $dbconn->result; $num = $dbconn->num_results; $array = mysqli_fetch_assoc($result); echo json_encode($array); ?> 

Если я наберу этот URL-адрес в браузере: http://127.0.0.1:82/blog/ws/test.php?cat=css

Данные, возвращаемые через jsonEncode, верны, но когда я загружаю его на html-странице с помощью jquery, он не может прочитать данные.

test.html

 <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <script> function ajaxCall() { var css; $.ajax({ url: 'test.php', type: "GET", data: {cat: css}, dataType: 'json', success: function(rows) { alert(rows); }, error: function() { alert("An error occurred."); } }); } ajaxCall(); </script> </head> <body></body> </html> 

Заранее спасибо.

Ваша переменная css не имеет значения. Вы хотели использовать строку 'css' . Возможно, вы захотите загрузить и другие категории. Поэтому измените функцию ajaxCall на

 function ajaxCall(category) { $.ajax({ url: 'test.php', type: "GET", data: {cat: category}, dataType: 'json', success: function(rows) { alert(rows); }, error: function() { alert("An error occurred."); } }); } 

и назовите его, используя

 ajaxCall('css'); 

Я просто переписал php-код с использованием PDO, теперь должен быть более безопасным.

db.php

 <?php $dbhost = "localhost"; $dbuser = "root"; $dbpsw = "somepsw"; $dbname= "blog"; try { @$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpsw); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); } catch(PDOException $e) { echo "Connection failed, an error occured! Please contact server administrator."; //user friendly message getErrorsLog($e->getMessage()); } function closeDbConn () { $dbh = null; } function getErrorsLog($message) { $file = 'dberrors.log'; $date = date("d/m : H:i :"); // Open the file to get existing content $current = file_get_contents($file); // Append a new error message to the file $current .= $date.$message; $current .= "\r\n"; // Write the contents back to the file file_put_contents($file, $current); exit(); } ?> 

blogdata.php

 <?php include_once "db.php"; $tableName = "posts"; $data = array(); @$view = $_GET["view"]; if (isset($_GET["view"])) { $stmt = $dbh->prepare("SELECT * FROM $tableName WHERE category =? ORDER BY created DESC"); } else { try { $stmt = $dbh->prepare("SELECT * FROM $tableName ORDER BY created DESC"); } catch (PDOException $e) { getErrorsLog($e->getMessage()); } } $stmt->bindValue(1, $view, PDO::PARAM_STR); $stmt->execute(); $affected_rows = $stmt->rowCount(); //Rows count if ($affected_rows == 0) { echo "The data you looking for no longer exist, please contact the administrator."; exit(); } foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $data[] = $row; } echo json_encode($data); closeDbConn(); ?>