用php简单的Ajax请求

时间:2014-01-04 12:26:39

标签: php jquery html ajax

我正在尝试将一个简单的变量从我的jQuery传递到我的php,然后在我的HTML上回显它。它似乎没有用。

我无法将变量$ result显示在我的页面上。有什么想法吗? Ajax POST似乎工作正常。问题似乎是php和HTML之间的沟通。

的index.html:

<!DOCTYPE html>
<html>
    <head> 
        <title>My Site</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script type='text/javascript' src='front.js'></script>    
    </head>
    <body>
        <?php echo $result; ?>
    </body>
</html>

front.js:

$(document).ready(function() {
    $.post('/back.php', {name: "Bob"}, function(data) {         
    });
});  

back.php:

<?php $result = $_POST['name']; ?>

7 个答案:

答案 0 :(得分:2)

试试这个

<强>的index.html:

<!DOCTYPE html>
<html>
    <head> 
        <title>My Site</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script type='text/javascript' src='front.js'></script>    
    </head>
    <body>
    </body>
</html>


front.js:

$(document).ready(function() {    
    $.post('/back.php', {name: "Bob"}, function(result) {
        $('body').html(result);         
    });    
}); 

<强> back.php:

<?php echo $_POST['name']; ?>

答案 1 :(得分:1)

更改此

<body>
    <div id="show-data"></div>
</body>

$(document).ready(function() {

    $.post('/back.php', {name: "Bob"}, function(data) {
        $('#show-data').html(data);         
    });

}); 

<?php echo $result = $_POST['name']; ?>

答案 2 :(得分:1)

Change Your PHP Code :
<?php echo $_POST['name']; ?>

And Also Your HTML Code :

    <!DOCTYPE html>
        <html>
            <head> 
                    <title>My Site</title>
                    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>


            </head>
            <body>

            </body>
    <script>
    $(document).ready(function() {

        $.post('/back.php', {name: "Bob"}, function(data) {         
        $('body').append(data)});

    });  
    </script>
     </html>

答案 3 :(得分:1)

back.php中的

$result与index.html中的$result无关。在back.php中设置它对index.html没有影响。如果你在back.php中回显一些东西,那么该输出将被传递给你在$ .post()调用中的空回调函数。您可以在那里处理数据并使用javascript将其插入您的页面。

答案 4 :(得分:0)

只需在代码中添加以下行:$('body').html(data);

答案 5 :(得分:0)

与您的问题一样,我们有三个不同的文件,一个是index.html 1)index.html

<!DOCTYPE html>
<html>
    <head> 
        <title>My Site</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script type='text/javascript' src='front.js'></script>    
    </head>
    <body>
        <?php echo $result; ?>
    </body>
</html>

2)front.js

$(document).load(function(){
        $.ajax({
            url: '/back.php',
            type: 'POST',
            data: 'name=Bob',
            async: false,
            success: function(data) {
                    $('body').html(data);
            },
            cache: false
        });
    });

3)back.php

<?php echo $result = $_POST['name']; ?>

现在使用它,你的文件就可以了。如果您有任何疑问,请与我们联系。

答案 6 :(得分:-1)

嗯,很多错误。首先,你的index.html包含PHP - 代码,它不会被执行,因为这不是PHP - Skript(以php结尾)。 其次,您将请求的值保存到变量中的back.php,该变量在请求完成后将不存在。你可以: 将index.html重命名为index.php,将您的语句交换为

<?php echo $_POST['name']; ?>

并将您的请求更改为

$.get('/index.php', {name: "Bob"}, function(data) {         
});

会导致网站不断重新加载, 或者将结果存储在$ _SESSION中(请参阅PHP会话处理),并在index.php中检索它(您必须重命名该文件)。