如何从Javascript脚本链接和执行PHP文件?

时间:2013-06-04 17:41:28

标签: php javascript jquery ajax

我想调用并执行一段位于外部文件上的PHP代码。我理解这样做的方式涉及jQuery。到目前为止,这是我的代码:

<html>
<head>
    <title>test</title>
</head>

<body>

    <script src="jquery.js"></script>
    <script language="javascript" type="text/javascript"> 
         $.post("ext.php", { name: "John", time: "2pm" })
        .done(function(data) {
          alert("Data Loaded: " + data); });

        $(document).ready(function(){
    $(this).load('ext.php');});

    </script>  

</body>

这是外部文件(ext.php):

<?php
echo $_POST['name'] . ' and- ' . $_POST['time'];
?>

代码应在屏幕上(以及弹出窗口中)打印变量nametime。弹出窗口工作正常,但代码不会在屏幕上打印变量。

谢谢:)

3 个答案:

答案 0 :(得分:4)

如果您已经知道,请原谅我,但如果您不知道:

您在示例中使用$.post(),这是$.ajax() jQuery方法的简化形式。我建议使用这种更简单(但更大)的格式,直到你对AJAX非常有信心。 $.ajax()还允许您执行比简化(快速)$.post方法更多的操作。

我添加了几个输入框,供您输入一些信息。此外,你需要一个地方把东西放在屏幕上,所以我为此创建了一个DIV。

Ajax将数据发布到外部php文件,该文件处理收到的数据并发回答案。它看起来像这样:

文件#1:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {

                $('#mybutt').click(function() {
                    var nom = $('#yername').val();
                    var tim = $('#thetime').val();

                    $.ajax({
                        type: "POST",
                        url: "receiving_file.php",
                        data: 'name=' + nom + '&time=' +tim,
                        success:function(data){
                            alert('This was sent back: ' + data);
                            $('#report').html(data);
                        }
                    }); //END ajax

                }); //END click fn

            }); //END document.ready
        </script>
    </head>
<body>

Name: <input type="text" id="yername"><br>
Time: <input type="text" id="thetime"><br><br>
<input type="button" id="mybutt" value="Go">
<br><Br>
<div id="report"></div>

文件#2:receiving_file.php

<?php
    echo 'You entered: ' . $_POST['name'] . ' and- ' . $_POST['time'];

答案 1 :(得分:0)

您可以按照我认为的方式使用帖子:

$(document).ready(function () {
    $(this).load('ext.php', {
        name: "john",
        time: "2pm"
    }, function (data) {
        $('body').append(data);
    });
});

答案 2 :(得分:0)

试试这个:

<script type="text/javascript"> 
    $(document).ready(function(){        
        $.post("ext.php", { name: "John", time: "2pm" }).done(function(data) { 
            alert("Data Loaded: " + data);
            $('body').html(data);
        });
    });
</script>