Нужно поправить скрипт, который должен выводить информацию из базы без перезагрузки страницы(ajax)?

Ссылка скопирована
1 ответ

Простой скрипт, который вместо вывода информации ничего не делает. Когда нажимаю на клиента, то появляется еще один выпадающий список. Ошибок никаких не выводится...

$(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 используется #
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Павел Админов Ответ

    Для того чтобы исправить скрипт, который должен выводить информацию из базы данных без перезагрузки страницы с использованием 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. На клиентской стороне убедитесь, что вы правильно обрабатываете полученные данные и обновляете содержимое страницы.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно