JQuery Ajax PHP - не удается получить данные из MySQL - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь выяснить, что происходит с помощью следующего кода, но не могу понять. Я сделал HTML-страницу, которая связывается с php и js-файлом. Цель моего примера - получить данные со стороны сервера и отобразить их на стороне клиента. Я сделал также 2 кнопки. Одна кнопка для отображения мне всех записей, а вторая кнопка для отображения конкретной записи, когда пользователь дает конкретный идентификатор.

Проблема в том, что синтаксис в порядке. Он прошел все необходимые проверки. Но он ничего не отображает, и, к сожалению, на консоли нет проблемных сообщений. Я просто хочу сообщить вам, что я поместил эти 3 файла в этот путь C: \ wamp64 \ www \ PHP, и я запускаю selectfrm.html отсюда: http://127.0.0.1/PHP/selectfrm.html

Итак, вы можете мне помочь с этим?

selectfrm.html:

<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
<script type="text/javascript" src="select.js">
</script>
</head>
<body>
<button id="button">Select All </button>
<br>
<input type="text" id="id" />
<button id="button2">Select by ID</button>
<div id="content"></div>
</body>
</html>

select.js

$(document).ready(function(){
    $("#button").click(function(){

        function show_all(){
            $.ajax({
                type: "POST",
                url: "select.php",
                data:{action:"showroom"},
                success: function (data) {
                    $("#id").hide();
                    $("#button2").hide();
                    $("#content").html(data);
                }
            });
        }

        show_all();
    });
});
$(document).ready(function(){
    $("#button2").click(function() {

        function show_selected() {
            var id=$("#id").val();
            $.ajax({
                type: "POST",
                url: "select.php",
                data:{action:id},
                success: function (data) {
                    $("#content").html(data);
                    $("#button").hide();
                }
            });
        }

        show_selected();
    });
});

select.php:

<?php
$link=mysqli_connect("localhost", "root", "", "connection");

if (mysqli_connect_errno())
    echo "Failed to connect to MySQL:" .mysqli_connect_error();

$action=$_POST["action"];
if($action=="showroom") {
    $query = "SELECT * FROM names";
    $show = mysqli_query($link, $query) or die ("Error");
    echo "<table border='2px'><tr><td>name_id</td><td>age</td></tr>";
    while ($row = mysqli_fetch_array($show)) {
        echo "<tr><td>" .$row['name_id'] ."</td><td>" .$row['name'] ."</td><td>" .$row['age'] ."</td></tr>";
    }
    echo "</table>";
}
else{
    $query = "SELECT * FROM names WHERE name_id = '$action'";
    $show = mysqli_query($link, $query) or die ("Error");
    echo "<table border='2px'><tr><td>name_id</td><td>age</td></tr>";
    while ($row = mysqli_fetch_array($show)) {
        echo "<tr><td>" .$row['name_id'] ."</td><td>" .$row['name'] ."</td><td>" .$row['age'] ."</td></tr>";
    }
    echo "</table>";
}
?>

1 Ответ

0 голосов
/ 24 августа 2018

Вам не хватает </script> закрывающего тега после следующего:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">

Некоторые несвязанные предложения:

  • Возможно, вы захотите узнать о атаках с использованием SQL-инъекций, которые ваш PHP Сценарий склонен. Я бы предложил исследовать подготовлено заявления ,
  • Всегда рекомендуется отделять код представления от логики, поэтому попробуйте поместить весь полученный HTML-код из сценария PHP в отдельный файл представления и передать в него все необходимые данные. Пока вы это делаете, вы можете использовать альтернативный синтаксис PHP для файла представления, который немного чище.

Примерно так:

<table border="2px">
    <tr>
        <td>name_id</td>
        <td>name</td>
        <td>age</td>
    </tr>
    <?php foreach ($names as $name): ?>
    <tr>
        <td><?= $name['name_id'] ?></td>
        <td><?= $name['name'] ?></td>
        <td><?= $name['age'] ?></td>
    </tr>
    <?php endforeach ?>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...