我有一个包含按钮的php文件( index.php ),其中如果单击该按钮,它将触发一个javascript函数,该函数将在php文件上发布请求(的login.php )。现在在login.php上,如果条件为真,我将被重定向到一个url,使用javascript。对于此示例,我不会询问如何重定向,而只是在login.php上执行简单的#include <stdio.h>
#include <math.h>
int main(void)
{
int l = 2;
int i , p;
double diag[l+1][l+1];
int a;
for (i = 0; i < l+1; i++)
{
p = 2*i + 1;
printf("%d ", p);
printf("\n");
diag[i][i] = 2 * 1/p;
printf("%d ", diag[i][i]);
printf("\n");
a = 2* 1/p;
printf("%d ", a);
printf("\n");
}
}
;
我找到答案说我应该这样:
alert()
它执行<?php // some php code
// php condition is true {
echo "<script type="text/javascript">
alert('Alert worked.');
</script>";
// }
// more php code
?>
但从不执行脚本
我如何在文件中执行javascript(通过邮件请求调用)。
答案 0 :(得分:1)
要使用AJAX使其工作,您应该将此响应添加到DOM页面。例如:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$.get('/test.php', function (script) {
$('body').append(script);
})
</script>
答案 1 :(得分:0)
退出PHP并让JS实际运行。使用echo,您只需将其写入正在生成的页面。
<?php // some php code
// php condition is true
{
?>
<script type="text/javascript">
alert('Alert worked.');
</script>";
<?php
}
// more php code
?>
答案 2 :(得分:0)
正如 cale_b 和 Andrew Koper 所提到的,您需要重新考虑您的方法。如果login.php仅用于路由用户而不显示任何输出,那么您将永远不会看到您的Javascript警报。
你可以通过AJAX发帖到login.php并返回一个值:
AJAX POST :https://api.jquery.com/jquery.post/
$.ajax({
type: "POST",
url: 'login.php',
data: data_to_post,
success: function(e) {
// e will be whatever you've returned from your login.php script
// Perform conditional check on e
(if (e === 'success') {
// Alert message here
alert("You've been logged in!");
// Redirect user here as needed
window.location = 'www.your_url.com';
}
}
dataType: dataType
});
我应该提一下,这个解决方案依赖于包含的JQuery:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
JQuery - 入门:http://www.w3schools.com/jquery/jquery_get_started.asp
答案 3 :(得分:0)
从根本上说,你所做的事情的结构 - 根据你所写的内容 - 听起来并不合适。听起来你想: