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条)

报告相同问题?

悬赏问题

  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。