通过ajax(jquery)在同一个php页面上发送数据

时间:2015-01-13 16:19:25

标签: php jquery ajax

<?php
    if(isset($_POST['name'])){
        $var = $_POST['name'];
        echo $var;
    }
?>
<html>
<head>
    <script type="text/javascript" src="jQuery.js"></script>
</head>
    <button id="submit">Button</button>
    <script type="text/javascript"> 
        $(function(){
            $("#submit").click(function(){
                var foo = 'just_a_name';
                $.ajax({
                        url:'',
                        type: "POST",
                        data: {
                            'name':foo
                        },
                        success: function(data)
                            {
                                alert('success');
                            }
                });             
            });
        });
    </script>
</html>

为什么这段代码不起作用?我无法找出错误。我想在这里做的就是在同一个PHP页面上发送一些数据。 单击“按钮”按钮时,将显示警报(“成功”)。 感谢。

4 个答案:

答案 0 :(得分:0)

我认为这必须有效,将你的php名称文件放在url中并将done()函数添加到你的代码中

<script type="text/javascript">
$("#submit").click(function(){
   var foo = $(this).val();    
   $.ajax({
      url:'YourPhpNameFile.php',
      type: "POST",
      data: {
             'name':foo
            }, 
   }).done(function( msg ) {
      alert('success');
   });
});
</script>

或放

location.reload(); 

关于success()函数。

希望这对你有所帮助!问候。

答案 1 :(得分:0)

以下我的评论: 首先,您需要在exit;之后添加echo $var;,因此它只显示该文本而不是以下HTML。

然后,您需要success:函数中的一段代码,它会将data插入到您的文档中。

类似

success: function(data) {
  $('html').before(data);
}

应该这样做。

假设您希望在代码建议的开头<html>之前显示最顶部的文字。

答案 2 :(得分:0)

试一试:

<?php
    if(isset($_POST['name'])){
        $var = $_POST['name'];
        echo $var;
    }
    $url = "http" . (($_SERVER['SERVER_PORT'] == 443) ? "s://" : "://") . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
?>
<html>
<head>
    <script type="text/javascript" src="jQuery.js"></script>
</head>
    <button id="submit">Button</button>
    <script type="text/javascript"> 
        $(function(){
            $("#submit").click(function(){
                var foo = 'just_a_name';
                $.ajax({
                        url: '<?php echo $url; ?>',
                        type: "POST",
                        data: {
                            'name':foo
                        },
                        success: function(data)
                            {
                                alert('success');
                            }
                });             
            });
        });
    </script>
</html>

答案 3 :(得分:-1)

仅使用PHP提交表单并重新加载页面:

<?php
    // Displays only the variable 'name' if it is set
    if(isset($_POST['name'])){
        $var = $_POST['name'];
        echo ('name=' . $var);
    }
?>
<html>
<head></head>
<body>
    <form action="ThisFileName.php" method="POST">
        <button name="name" value="hai">Button</button>
    </form>
</body> 
</html>

如果您想留在当前页面上,可能会更容易:

<html>
<head>
    <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
</head>
    <button id="submit" value="haihai">Button</button>
    <p id="result"></p>
    <script type="text/javascript"> 
        $(function(){
            $("#submit").click(function(){
                // Your value from the button
                var value = $('#submit').val()          
                $('#result').text(value)
                alert('succes')
            });
        });
    </script>
</html>
祝你好运!