Нужно поправить скрипт, который должен выводить информацию из базы без перезагрузки страницы(ajax)?
Простой скрипт, который вместо вывода информации ничего не делает. Когда нажимаю на клиента, то появляется еще один выпадающий список. Ошибок никаких не выводится...
$(document).ready(function(){ $('#fio_select').change(function(){ var selected_fio = $(this).val(); $.ajax({ url: 'index.php', type: 'POST', data: {family: selected_fio}, success: function(response){ $('#info').html(response); } }); }); }); |
$(document).ready(function(){ $('#fio_select').change(function(){ var selected_fio = $(this).val(); $.ajax({ url: 'index.php', type: 'POST', data: {family: selected_fio}, success: function(response){ $('#info').html(response); } }); }); });
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <script src="script.js"></script> <title></title> </head> <body> <h3>Выберите клиента</h3> <select name = "" id = "fio_select"> <option value=""></option> <?php $link = new mysqli('localhost', 'root', '', 'db_2'); $result = $link->query("SELECT * FROM `клиенты`"); while($row = $result->fetch_assoc()){ echo '<option value = "'.$row['id'].'"]>'.$row['ФИО'].'</option>'; } ?> </select> <div id = 'info'></div> <?php $db_user = "root"; $db_pass = ""; $pdo = new PDO('mysql:host=localhost;dbname=db_2', $db_user, $db_pass); if(isset($_POST['family'])){ $selected_fio = $_POST['family']; $sql = "SELECT * FROM `клиенты` WHERE id = :family"; $porno = $pdo -> prepare($sql); $porno -> bindParam(':family', $selected_fio); $porno -> execute(); $row = $porno -> fetch(PDO::FETCH_ASSOC); echo '<script>$("@info").html("'.$row['id'].'<br>'.$row['Телефон'].'");</script>'; } ?> </body> </html> |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <script src="script.js"></script> <title></title> </head> <body> <h3>Выберите клиента</h3> <select name = "" id = "fio_select"> <option value=""></option> <?php $link = new mysqli('localhost', 'root', '', 'db_2'); $result = $link->query("SELECT * FROM `клиенты`"); while($row = $result->fetch_assoc()){ echo '<option value = "'.$row['id'].'"]>'.$row['ФИО'].'</option>'; } ?> </select> <div id = 'info'></div> <?php $db_user = "root"; $db_pass = ""; $pdo = new PDO('mysql:host=localhost;dbname=db_2', $db_user, $db_pass); if(isset($_POST['family'])){ $selected_fio = $_POST['family']; $sql = "SELECT * FROM `клиенты` WHERE id = :family"; $porno = $pdo -> prepare($sql); $porno -> bindParam(':family', $selected_fio); $porno -> execute(); $row = $porno -> fetch(PDO::FETCH_ASSOC); echo '<script>$("@info").html("'.$row['id'].'<br>'.$row['Телефон'].'");</script>'; } ?> </body> </html>
Дополнительно:
А что это у вас за новый селектор такой, «@»?
Ответы:
$("#info")
- А не могли бы немного пояснить Просто я не очень понял...
- Вам уже пояснили что нет селектора @, для доступа по id используется #
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы исправить скрипт, который должен выводить информацию из базы данных без перезагрузки страницы с использованием AJAX, необходимо следовать нескольким шагам.
1. Настройте серверную часть:
```php
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Запрос к базе данных
$sql = "SELECT * FROM your_table";
$result = $conn->query($sql);
// Преобразование результата в массив
$rows = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
}
// Вывод результата в формате JSON
echo json_encode($rows);
$conn->close();
?>
```
2. Настройте клиентскую часть с использованием AJAX:
```php
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var data = JSON.parse(this.responseText);
// Обновление содержимого страницы
}
};
xhr.open("GET", "get_data.php", true);
xhr.send();
```
3. Обновите содержимое страницы с полученными данными:
```php
// Пример обновления содержимого страницы
var output = document.getElementById("output");
output.innerHTML = "";
data.forEach(function(item) {
output.innerHTML += "
" + item.column_name + "
";
});
```
Убедитесь, что ваш скрипт на сервере правильно подключается к базе данных и возвращает данные в формате JSON. На клиентской стороне убедитесь, что вы правильно обрабатываете полученные данные и обновляете содержимое страницы.