#php #javascript
#php #javascript
Вопрос:
Как мы можем вызывать функции Php с условием in JavaScript If-else.
Например,
if (top == self) {
// not in any kind of frame
} else {
// in a frame
// calling php function
}
</script>
Здесь функция PHP exit() вызывает как условия if, так и else. Мне нужно вызвать эту функцию только для части else.
Пожалуйста, посоветуйте мне.
Спасибо. Прабху
Комментарии:
1. Это принципиально невозможно, потому что PHP запускается на сервере; JavaScript запускается в браузере пользователя еще долго после завершения работы PHP.
2. Пожалуйста, изучите разницу между серверными и клиентскими языками.
3. Какую функцию вы хотите вызвать? Вероятно, существует эквивалент JavaScript для того, что вы хотите сделать, или вы можете выполнить вызов Ajax.
4. Вы могли бы отправить AJAX-запрос к желаемой функции PHP в вашем else
$.get("exit.php")
, но это мало что даст для вашего запущенного кода Javascript. Это предназначено для извлечения новых данных, а не для смешивания PHP и потока управления JS.5. на самом деле, я планировал вызвать функцию перехвата wordpress, также эта функция перехвата должна вызываться только для окна iframe
Ответ №1:
Технически невозможно. Однако вы можете выполнить AJAX-вызов PHP-страницы и получить возвращаемые ею значения.
PHP (test.php ):
<?php
$x = 10;
$y = 20;
$val = $y / $x;
echo $val;
?>
Javascript (jQuery):
$(document).ready(function() {
$.ajax({url: 'test.php',
type: 'POST',
success: function(data){
//takes the value returned by test.php and
//puts it directly into the element with
//id = someElement
$('#someElement').html(data);
}
});
Что касается вызова exit();
и прекращения обработки страницы, содержащей JavaScript, вы просто не сможете, если не будете управлять логикой на этой же странице в PHP и вызывать exit();
оттуда.
Ответ №2:
Не пытайтесь смешивать javascript с php.
Если вы хотите остановить загрузку страницы, вы также можете перенаправить страницу на другую страницу (php), где вы просто вводите exit ();
Если этот javascript находится в функции, просто используйте : return; или верните false;