使用ajax将值从html传递到php页面并在div中打印返回值

时间:2016-10-10 14:35:28

标签: php jquery html ajax

我想使用ajax从我的html页面传递一些值到php页面并在div中打印返回值

HTML代码:

<!DOCTYPE html>
<html>
<head>
<title></title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>


<style type="text/css">

#div1, #div2{

    border: 1px solid #000;
    width: 30%;
    margin-left: 10%;
    height: 400px;
    margin-top: 20px;
    float: left;
}

#nm, #cls, #roll, #dob, #submit1{

   margin-top: 10px;
}

</style>


</head>

<body>

   <div id="div1" class="container input-group"> <!-- Make text input and button in same row with Bootstrap -->

        <form>
            <table width="70%">

                <tr>
                    <td align="right">Name : &nbsp;</td>
                     <td>
                        <input type="text" name="nm" id="nm" maxlength="30" class="form-control" placeholder="Name">
                    </td>
                </tr>

                <br>

                <tr>
                    <td align="right">Class : &nbsp;</td>
                     <td>
                        <select class="form-control" align="center" id="cls">
                            <option value="0">Please Select</option>
                            <option value="First Year">First Year</option>
                            <option value="Second Year">Second Year</option>
                            <option value="Third Year">Third Year</option>
                        </select>
                    </td>
                </tr>

                <tr>
                    <td align="right">Roll No. : &nbsp;</td>
                     <td>
                        <input type="text" name="roll" id="roll" class="form-control" placeholder="Roll No." align="center">
                    </td>
                </tr>

                <tr>
                    <td align="right">DOB : &nbsp;</td>
                     <td>
                        <input type="date" name="dob" id="dob" class="form-control" placeholder="Date of Birth" align="center">
                    </td>
                </tr>

                <tr>
                    <td></td>
                     <td>
                        <button class="btn btn-primary" name="submit1" id="submit1">Add</button>
                    </td>
                </tr>

            </table>

        </form>

   </div>

   <div id="div2">

   </div>


<script type="text/javascript">

$(document).ready(function() {           
$('#submit1').click(function() {
var nm = $('#nm').val();
var cls = $('#cls').val();
var roll = $('#roll').val();
var dob = $('#dob').val();
$.ajax({
    type: 'POST',
    url: 'index.php',
    data: ({ nm: nm, cls: cls, roll: roll, dob: dob }),
    success: function(response) {
        $('#div2').html(response);
    }
});
});
});

</script>


</body>
</html>

PHP代码

<?php 

$nm = $_POST['nm'];
$cls = $_POST['cls'];
$roll = $_POST['roll'];
$dob = $_POST['dob'];


$date = date_format($date, 'Y-m-d');


$now = time();

$dob = strtotime('Y-m-d', $dob);

$difference = $now - $dob;

$age = floor($difference / 31556926);

echo "Name : ". $nm;

echo "Class : ". $cls;

echo "Roll No. : ". $roll;

echo "Age : ". $age;

?>

我不知道我的代码有什么问题。但在我点击&#34;添加&#34;按钮我的地址栏看起来像这样:

index.html?nm=asd&roll=1&dob=1992-08-12&submit1=

即使我使用POST方法。需要帮助。

2 个答案:

答案 0 :(得分:2)

您的点击功能仍会发布表单。 使用Javascript的preventDefault()来对付此

$('#submit1').click(function(event) {
    event.preventDefault();
    var nm = $('#nm').val();
    var cls = $('#cls').val();
    var roll = $('#roll').val();
    var dob = $('#dob').val();
    $.ajax({
        type: 'POST',
        url: 'index.php',
        data: ({ nm: nm, cls: cls, roll: roll, dob: dob }),
        success: function(response) {
            $('#div2').html(response);
        }
    });
});

答案 1 :(得分:1)

您必须提供表单方法"POST",然后单独将它提交的数据永远不会发送到您访问的网址。

您遇到的问题是您没有为<form>属性指定任何方法,因此它采用GET方法。

首先了解GETPOST方法之间的区别