JQuery для изменения div при нажатии ссылки, созданной из данных mysql

У меня есть панель навигации, созданная из таблицы MySQL. Я хочу щелкнуть ссылку и изменить содержимое только двух div на странице. Однако я не могу понять, как правильно написать код jQuery.

Я попытался включить один класс для всех ссылок и использовать

$(".class").click(function(){
//the code to change the div
}

Но похоже, что это не работает.

Код PHP

<?php

    require(__DIR__.'/dbconf.php');
    require(__DIR__.'/db_functions.php');

    $db_con = mysqli_connect($host, $username, $pass, $dbname); 

    $column = "playerName";
    $table = "Players";
    $condition = "";
    $key = "";

    $query = selectData($db_con, $column, $table, $condition, $key);

    while($row=mysqli_fetch_assoc($query)){

        $res[] = $row[$column];

        echo "<a href = # class = 'player' name ='".$row[$column]."'>".$row[$column]."</a>";
    }

    mysqli_close($db_con);
?>

Код JQuery

$(".player").click(function(){
    var player = $(this).val()

    var dataString = 'playerName'+ player;

    $.ajax({
        type: "POST",
        url: "coin_amount.php",
        data: dataString,
        cache: false,
        success: function(postresult){
            $(".coins").html(postresult);}
    });
    return false;
    });

Похоже, это должно сработать. Что при нажатии любой ссылки с классом «player» она должна изменить значение переменной player и вызвать файл coin_amount.php. Но это не так. Что я не понимаю? Я знаю, что функция ajax верна, потому что я вызываю эту функцию при загрузке страницы, и она работает. Так что это должно быть что-то в функции щелчка.

.player создается динамически с помощью ajax?

Mark Baijens 07.01.2019 19:03

Подожди. Мой код PHP был усечен. Я пытаюсь это исправить.

Kristen Miller 07.01.2019 19:04

В порядке. Я исправил это. Класс проигрывателя добавляется через скрипт PHP, но не создается динамически.

Kristen Miller 07.01.2019 19:06

Что такое вывод html?

Mark Baijens 07.01.2019 19:06

Включить отчет об ошибках mysqli.

Dharman 07.01.2019 19:11

У вашего оператора echo нет действительного HTML-кода. Удалите пробелы и добавьте кавычки для тега href.

Grasper 07.01.2019 19:14

Я не уверен, как поделиться своим html-выводом. Я внес предложенные ниже изменения и исправил оператор echo, но он по-прежнему ничего не делает.

Kristen Miller 07.01.2019 19:24

В порядке. У меня гораздо большая проблема, чем я думал. И я даже не знаю, как обратиться за помощью. По какой-то причине эта функция извлекает данные из другой функции, хотя я изменил имена переменных. Есть ли где-нибудь, где я могу опубликовать весь свой код и попросить о помощи? Я не хочу отнимать ваше время, так как это, кажется, с моей стороны является основным недоразумением.

Kristen Miller 07.01.2019 19:37

Это может быть хорошим началом: замените var player = $ (this) .val () на var player = $ (this) .attr ('name')

Hans Dash 07.01.2019 19:43

Спасибо. Потребовалось сочетание множества различных предложений (поэтому я не знаю, как отметить одно из них как правильное). Но я понял.

Kristen Miller 07.01.2019 19:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
10
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если проигрыватель создается после загрузки DOM, вам нужно будет прикрепить прослушиватель кликов к документу, например:

$(document).on('click', '.player', () => {
  // execution code here
}

ДОБАВИТЬ его в теге <script></script> в заголовке страницы после загрузки библиотеки jquery.

Код JQuery:

$(document).ready(function() {
                    $("#cercaButton").click(function () {
                        $(".divClass").load("./action/loadDdtGiornalieri.php");
                    });
                });

В вашем случае добавьте идентификатор в тег ссылки, сгенерированный из кода PHP, который распечатывает меню.

Я предлагаю вам добавить разные идентификаторы для каждой ссылки меню, чтобы загружать разный контент. Из php вам нужно сгенерировать строку как

    <a id = "cercaButton">Cerca</a>

Это полный пример загрузки, включая также публикацию параметров на веб-странице php. Если вам нужно публиковать данные на странице, загруженной из jquery, самый простой код:

$(document).ready(function() {
                $("#cercaButton").click(function () {
                    $(".divClass").load("./action/loadDdtGiornalieri.php", {
                        dateIn: $("#dateIn").val(),
                        tipoInterrogazione: $("#tipoInterrogazione").val()
                    });
                });
            });

Мне не нужна пуговица. Я хочу иметь возможность щелкнуть имя игрока и изменить вывод внутри div. И у меня в файле есть document.ready (функция).

Kristen Miller 07.01.2019 19:26

Спасибо. Но я думаю, что у меня есть более серьезная проблема, чем я думал, и я не знаю, как обратиться за помощью. Ой.

Kristen Miller 07.01.2019 19:33

@KristenMiller Хорошо подумайте, как его запросить. Существуют способы требовать все: вчера, чтобы сформулировать свой вопрос, я написал пост в течение 3 часов. Если вы думаете, что это правильный ответ на этот вопрос, пожалуйста ;-)

Luigi di Massa 07.01.2019 19:43

Другие вопросы по теме