Intereting Posts
php заменить первое вхождение строки из 0-й позиции Cookie не установлен при первом посещении move_uploaded_file () не может открыть поток вставлять контакты в базу данных, но не хочет дублировать уже существующий контакт алгоритм, который будет принимать числа или слова и находить все возможные комбинации Функция laravel Collections только для результата ORQUENT ORM всегда возвращает пустую коллекцию Невозможно остановить C-демона в определенных ситуациях из PHP Преобразование одного формата даты в другой в PHP как я могу публиковать внешнюю форму с помощью PHP? http_build_query, помещая странные символы в строку запроса PHP image_jpeg не работает, если файл UTF-8 работает, если это ANSI PHP – вызов Ajax не будет запускать API без wait / print_r Как передать инструкции условия в запрос mySql (WordPress Multisite) Отобразить страницу как главную страницу в выбранные будние дни PDO – FETCH_CLASS – передать результаты в конструктор в качестве параметров

Значение переменной, не переданное в инструкцию mySQL в Bootstrap Modal

Я передаю переменные, используя jQuery для Bootstraps, модально через теги span, но имея проблему при запуске PHP в модальном режиме. Переменные все тянут нормально, но когда я пытаюсь запустить mySQL-команды, тег span, который я храню в переменной, выглядит как ничто, даже если это хорошо. Я привел пример кода ниже:

HTML:

<a role='button' data-topicid='$number' data-toggle='modal' data-target='#modaluserinfo' class='modalsend'> 

JS:

 <script> $(document).ready(function () { $('.modalsend').click(function () { $('span.user-topicid').text($(this).data('topicid')); }); }); </script> 

Modal:

 <div class="modal fade" id="modaluserinfo" tabindex="-1" role="dialog" aria-labelledby="modaluserinfo" aria-hidden="true"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">Details...</h4> </div> <div class="modal-body" style="text-align:center; margin-top:10px;"> <?php $numberid = "<span class='user-topicid'></span>"; echo $numberid;// THE VALUE ECHOS FINE IN THE MODAL, BUT FAILS TO LOAD IN THE MYSQL QUERY BELOW $sqlcomment = mysql_query("SELECT * FROM comments WHERE comments.topic_id='$numberid' AND comments.emotions_id='1'"); $commentnumber = mysql_num_rows($sqlcomment); echo $commentnumber; ?> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> 

Я предполагаю, что оператор PHP работает на загрузке страницы, а не когда модален открыт и переменная отправляется тегу span. Не слишком уверен, как это исправить.

Проблема была решена для передачи нескольких переменных, используя следующий метод:

HTML:

 $page = mysql_real_escape_string($_GET['page']); <a role='button' data-topicid='$number' data-page='$page' data-toggle='modal' data-target='#modaluserinfo' class='modalsend'> 

JQuery:

 $(document).ready(function () { $('.modalsend').click(function () { $('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + $(this).data('page')); }); }); 

Обратитесь к сообщению @bloodyKnuckles за любыми подробностями

PHP работает только на сервере. Для Javascript или jQuery для выполнения PHP-скрипта необходимо сделать вызов на сервер. Существует два способа сделать это GET (например, ссылку) и POST (например, форма). И есть два способа, которыми вы GET и POST, один из способов – перезагрузить страницу, другой – объект XHR, AKA Ajax.

Итак, создайте отдельный файл PHP, например …

get_number_comments.php:

 <?php // LOAD YOUR DATABASE CREDENTIALS HERE $numberid = mysql_real_escape_string($_GET['topicid']); $page = mysql_real_escape_string($_GET['page']); $sqlcomment = mysql_query("SELECT * FROM comments WHERE comments.topic_id='$numberid' AND comments.emotions_id='1'"); $commentnumber = mysql_num_rows($sqlcomment); echo $commentnumber; ?> 

И измените функцию готовности документа на:

 $(document).ready(function () { $('.modalsend').click(function () { $('span.user-topicid').load('get_number_comments.php?topicid=' + $(this).data('topicid') + '&page=' + encodeURIComponent('<?php echo page; ?>')); }); }); 

Внутренняя DIV вашего модала теперь выглядит так:

 <div class="modal-body" style="text-align:center; margin-top:10px;"> <span class='user-topicid'></span> </div> 

Функция загрузки jQuery делает вызов XHR на сервер, в этом случае выполняется файл, который вы вводите в первом аргументе, get_number_comments.php . Таким образом, get_number_comments.php принимает переменную GET, безопасно ускользает от нее, интерполирует ее в запросе и отправляет результат обратно на страницу через объект XHR.

(Кстати, поскольку PHP mysql_* функции, по-видимому, SOON являются нулевыми и недействительными, я призываю вас преобразовать в функции PHP mysqli_* . Тогда вы также можете использовать строгие меры безопасности базы данных.)