JQuery Ajax PHP - Не удается получить данные из MySQL

Я пытаюсь выяснить, что происходит со следующим кодом, но я не могу понять. Я создал 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>";
}
?>

javascript,php,jquery,ajax,

1

Ответов: 2


1 принят

Отсутствует </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>

0

Теперь у меня есть яркая новая идея ...

Я хочу передать значение не из <input type="text">элемента, а из окна. Перейти к серверу через ajax или javascript (я не знаю, какой из этих 2 может быть легким ..) Сейчас я читаю, что мне нужно использовать скрытый ввод ( как текст с типом = скрытый) в форме, чтобы передать данные на сервер.

Может ли кто-нибудь помочь мне в этом, потому что я не опытный программист, и я не могу сделать это сам?

JavaScript, PHP, JQuery, AJAX,
Похожие вопросы