У меня есть функция frm_trigger_entry_update
, это функция php, которая запускается в фоновом режиме. Я имею в виду, что это функция ajax php.
В этой функции я написал некоторую функцию jquery или javascript, которая будет alert
текстовым сообщением.
В приведенном ниже фрагменте кода вы можете увидеть мой код функции.
<?php
function frm_trigger_entry_update($atts)
{
//here i have some php code which run properly
}
?>
Я пробовал нижеприведенную логику, но она не работает для меня, значит окно предупреждения не отображается после вызова этой функции.
<?php
function frm_trigger_entry_update($atts)
{
//here i have some php code which run properly
?>
<script>
jQuery(document).ready(function($){
alert("my message");
});
</script>
<?php
}
?>
Так как же предупредить окно в этой функции php любой может иметь какое-либо представление.
6 ответов
Попробуй это:
echo "<script>alert('test');</script>";
Примечание. Рекомендуется делать это с Ajax, потому что функция находится на стороне сервера, поэтому вы должны вызывать ее на сервере из клиента, используя Ajax.
Создайте один файл, например: "frm_trigger_entry_update.php"
В "frm_trigger_entry_update.php" поставьте свою функцию
function frm_trigger_entry_update($atts)
{
//here i have some php code which run properly
echo $atts;
}
// Call to that function
frm_trigger_entry_update("ATTRIBUTE_VALUE");
Напишите Ajax в своем HTML
$.ajax({
type: 'get',
url: 'PATH to frm_trigger_entry_update.php',
success: function(data) {
alert(data);
}
});
Вы получите оповещение как ATTRIBUTE_VALUE .
Подумайте о том, чтобы ваш Ajax-вызов был следующим
$.ajax({url: "URL to frm_trigger_entry_update",
success: function(result)
{
alert(result);
}
});
Ваша PHP
функция
<?php
function frm_trigger_entry_update($atts)
{
echo "my message";
}
?>
Используйте JS и Php отдельно.
Первый ajax-вызов из вашего файла JS:
$.ajax({url: "frm_trigger_entry_update function's Url",
success: function(result) {
alert(result);
}
});
В php Function, откуда вы должны отправить свое сообщение:
function frm_trigger_entry_update($atts) {
echo "my message";
}
Вызов функции php через ajax действительно невозможен, потому что ajax использует url для файла php, а не функцию php.
Хотя ваш код работает и будет предупреждать, если вы вызовете его через php. Код ниже будет предупреждать о том, какую строку вы вводите в параметр своей функции.
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<?php
function frm_trigger_entry_update($atts)
{
//here i have some php code which run properly
?>
<script>
jQuery(document).ready(function($){
alert("<?php echo $atts;?>");
});
</script>
<?php
}
//calling the function and passing a simple string
frm_trigger_entry_update("Alert Message");
?>
</body>
</html>
В вашей функции php вам нужно вернуть результат:
<?php
function frm_trigger_entry_update($atts)
{
return "<script>
jQuery(document).ready(function($){
alert('my message');
});
</script>";
}
И затем, где вы хотите применить этот скрипт, вы можете отобразить вывод вашей функции:
<?php
...
$script = frm_trigger_entry_update($ats);
echo $script;
Однако, на мой взгляд, это не очень хорошая практика, вы должны поместить свой javascript в функцию js, в файл js и включить свой файл js в документ или вызвать его при необходимости.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.