在通过post请求调用的文件中执行javascript

时间:2016-08-26 13:30:07

标签: javascript php jquery ajax http-post

我有一个包含按钮的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(通过邮件请求调用)。

4 个答案:

答案 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)

从根本上说,你所做的事情的结构 - 根据你所写的内容 - 听起来并不合适。听起来你想:

  1. 将点击事件处理程序附加到索引页面上的按钮
  2. 单击,将AJAX请求发送到服务器。 (如果您的表单中包含一些需要提交/存储在服务器上的变量,请使用POST。如果您需要从服务器获取真/假变量,请使用GET。有没有意义服务器上有一个真/假变量的页面,它没有被提供。在页面上有一个真/假变量是有意义的,它只能提供一微秒获取变量以提供另一页。)
  3. &#34; window.location =&#39; http://whatever.com&#39;&#34;将通过JavaScript向用户显示新的网页。或者按钮可以向服务器上的PHP文件发送HTTP请求,PHP可以像正常一样基于真/假测试发送回网页。