#javascript #php #html #ajax #button
#javascript #php #HTML #ajax #кнопка
Вопрос:
У меня есть PHP-код, который делает кучу вещей, поэтому, чтобы все было просто, я удалил из него ненужный код.
В приведенном ниже блоке if мне нужно создать всплывающее окно с этим $message
на нем, и на нем должна быть кнопка ok
и cancel
. Как только я нажму ok
кнопку, мне нужно выполнить какой-нибудь другой php-код в том же файле, если это возможно (или это может быть и другой PHP-файл), и если я нажму cancel
кнопку, то он ничего не должен делать.
Ниже мой test.php
файл-
<?PHP
// ..... some other code
if (!isset($_SESSION['admin'])) {
$text = "hello world";
// create a pop up window with $message on it along with "ok" and "cancel" button
echo "<script type='text/javascript'>confirm('$text');</script>";
}
// ..... some other code
?>
У меня может быть либо JS modal
, либо HTML/CSS modal
все, что угодно, работает до тех пор, пока я могу выполнять некоторые действия с ok
и cancel
кнопкой. Возможно ли это сделать? Я попытался осмотреться, но не смог понять, как это сделать.
Обновить:
Ниже приведен мой обновленный hello.php
файл, в котором я использовал предложение Оливера. Я попробовал с приведенным ниже кодом, где у меня есть функция javascript secondUser
, но она показывает всплывающее окно, как Sad :( - invalid session
только я нажимаю ok
кнопку.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" type="text/javascript"></script>
<script>
function secondUser() {
$.post( "ajax/test.php", function( data ) {
if (data.success) {
alert(data.message);
} else {
alert("Sad :( - invalid session");
}
});
}
</script>
<?PHP
// ..... some other code
if (!isset($_SESSION['admin'])) {
$text = "hello world";
// create a pop up window with $message on it along with "ok" and "cancel" button
echo "<script type='text/javascript'>if (confirm('$text')) { secondUser(); };</script>";
}
// ..... some other code
?>
Теперь я не могу понять, что не так в моем приведенном выше коде? Я просто хочу выполнить свой test.php
с использованием ajax в моем другом php-файле.
Комментарии:
1. таким образом, вы выполняете вызов Ajax или отправляете форму или переходите по ссылке.
2. кодовый блок в том же файле? вероятно, нет, но в другом php-файле вы могли бы просто поместить простой терней на
confirm
и просто добавитьlocation.href
указание на него. если это post, вам понадобится форма или создайте xmlhttprequest с помощью post.3. @epascarello Мне интересно, можете ли вы привести пример, как это сделать?
4. @user1950349 вы имеете в виду троичный? это просто сокращение, если еще
confirm() ? redirect : ''
5. @kevin Я хотел сказать, можете ли вы предоставить мне пример на скрипке 3v4l.org Немного кода будет работать.
Ответ №1:
Вы можете использовать библиотеку jQuery для отправки запроса с использованием AJAX. Первым делом регистрируется кнопка.
<button id="cool-btn">My button</button>
Как только кнопка будет запущена, вы можете добавить этот скрипт в html или JS-файл.
<script>
$(document).ready(function() {
$("#cool-btn").click(function(){
attemptRequest();
});
});
</script>
Теперь вам нужно создать функцию с именем attemptRequest, которая отправляет AJAX-запрос для вас в вашу PHP-форму.
function attemptRequest() {
$.post( "ajax/test.php", function( data ) {
if (data.success) {
alert(data.message);
} else {
alert("Sad :( - invalid session");
}
});
}
Затем вам нужно выполнить проверку сеанса в вашем PHP-скрипте, вызываемом test.php в папке ajax и вернуть соответствующие данные.
$data = new stdClass();
$data->success = false;
$data->message = "";
if (isset($_SESSION['pageadmin'])) {
$data->message = "hello world";
$data->success = true;
}
return json_encode($data);
Надеюсь, это полезно 🙂
Комментарии:
1. Привет, Оливер, я попробовал ваш код, и в разделе исходные тексты (проверка) я вижу следующий код При нажатии кнопки Ok, он говорит,
Sad :( - invalid session
и он не входит вsecond_user.php
файл, хотя он входит вsecondUser()
функцию javascript. Мне интересно, какие изменения мне нужно внести в скрипку, чтобы она попала внутрьsecond_user.php
файла.2. Привет, пользователь (вам следует изменить свое имя 🙂 ) Не могли бы вы показать мне, как теперь расположены ваши файлы?
3. Я уже создал скрипку, и это та же настройка, что и у меня. У меня просто есть только один php-файл
(admin.php)
, и в этом php-файле у меня есть все(php js)
. Я знаю, что это не лучшая практика, но я попытаюсь изменить структуру позже. Я также обновил вопрос тем, что я пробовал.4. Я также обновил свой вопрос подробностями того, что я пробовал.
5. Привет @user1950349 для этого примера, не могли бы вы, пожалуйста, разделить файлы PHP и JS / HTML соответственно? Я с удовольствием научу вас делать это в одном файле в другом вопросе, как только мы освоим основы работы. Извиняюсь за поздний ответ, по иронии судьбы, я обычно нахожусь в stackoverflow в рабочие дни 🙂