doutang3815 2013-11-11 19:52
浏览 60
已采纳

使用jquery和AJAX提交表单

As the topic name says I'm trying to pass variables from a HTML form to a PHP script with jQuery and AJAX. I've done this before, but today I don't have access to the files. PHP won't print the first name and last name. I found some examples, but whatever I do it's the same... What I'm doing wrong in the last few days?

This is the HTML code:

First Name: <br />
<input type="text" name="fname" /><br />
Last name: <br />
<input type="text" name="lname" /><br /><br />
<input type="submit" name="submit" value="Send" />

Javascript (jQuery):

$(document).ready(function(){
    $('input[name="submit"]').click(function(){
        var fname = $('input[name="fname"]').val();
        var lname = $('input[name="lname"]').val(); 

        $.ajax({
            type: 'POST',
            url: 'index.php',
            data: {fname:fname, lname:lname},
            dataType:"json"
        });

    }); 
});

PHP:

if(isset($_POST['fname']) && isset($_POST['lname'])){
    $fname = $_POST['fname'];
    $lname = $_POST['lname'];
    echo $fname;
    echo "<br />";
    echo $lname;    
}
  • 写回答

2条回答 默认 最新

  • dsznndq4912405 2013-11-11 20:09
    关注

    Either change your PHP to

    if(isset($_POST['fname']) && isset($_POST['lname'])){
        $fname = $_POST['fname'];
        $lname = $_POST['lname'];
        $string = $fname."<br />".$lname;
        echo $string;    
    }
    

    And your jQuery to

    $(document).ready(function(){
        $('input[name="submit"]').click(function(){
            var fname = $('input[name="fname"]').val();
            var lname = $('input[name="lname"]').val(); 
    
            $.ajax({
                type: 'POST',
                url: 'index.php',
                data: {fname:fname, lname:lname},
                success: function(response){
                   console.log(response);
                   // YOUR OWN LOGIC
                   // IE: $('#my_div').append(response);
                }
    
            });
    
        }); 
    });
    

    Or change your PHP to

    if(isset($_POST['fname']) && isset($_POST['lname'])){
        $response = array();
        $response['fname'] = $_POST['fname'];
        $response['lname'] = $_POST['lname'];
        echo json_encode($response);  
    }
    

    And your jQuery to

    $(document).ready(function(){
        $('input[name="submit"]').click(function(){
            var fname = $('input[name="fname"]').val();
            var lname = $('input[name="lname"]').val();
    
        $.ajax({
            type: 'POST',
            url: 'index.php',
            data: {fname:fname, lname:lname},
            dataType:"json"
            success: function(response){
               response = eval(response);
               console.log('First name:' + response.fname);
                console.log('Last name:' + response.lname);
                   // YOUR OWN LOGIC
                   // IE: $('#my_div').append('Last name: ' + response.lname);
            }
    
        });
    
      }); 
    });
    

    I haven't tested any of it but it should put you on the right path. You can also use beforeSend and error / fail callbacks to debug and don't forget to check for a response (Firebug is great for this) it helps a lot.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计