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 Python语言实验
  • ¥15 我每周要在投影仪优酷上自动连续播放112场电影,我每一周遥控操作一次投影仪,并使得电影永远不重复播放,请问怎样操作好呢?有那么多电影看吗?
  • ¥20 电脑重启停留在grub界面,引导出错需修复
  • ¥15 matlab透明图叠加
  • ¥50 基于stm32l4系列 使用blunrg-ms的ble gatt 创建 hid 服务失败
  • ¥150 计算DC/DC变换器平均模型中的参数mu
  • ¥25 C语言代码,大家帮帮我
  • ¥15 请问以下文字内容及对应编码是用了什么加密算法或压缩算法呢?
  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)