如何使用ajax和PHP将数据传递到服务器? $ _POST ['数据']无法正常工作

时间:2017-05-14 02:12:44

标签: javascript php jquery ajax

我有一个HTML表单,我希望在提交之前将一些信息发送到服务器(使用PHP脚本)。我也使用.ajax()jQuery函数。

这是我的demo.html文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="form-group">
<label>Provincia</label>
<select id ="demo" class="form-control">
<option> </option>
<option value="op1">Opcion 1</option>
<option value="op2">Opcion 2</option> 
<option value="op3">Opcion 3</option> 
</select>
</div>

<div id="demo2"></div>

<script>

$(document).ready(function() {
    $('#demo').on('change', do_something);
    console.log('ready');
});

function do_something() {
    var selected = $('#demo').val();
    $.ajax({
        url:        'delete.php',
        type:       'POST',
        dataType:   'json',
        data:       { selected }
    });
    console.log(selected);
    $('#demo2').append(selected);
}
</script>

我不知道如何处理所选项目。 我可以在屏幕上和控制台中打印所选项目。我如何用PHP获得它?

delete.php文件只有这个:

<?php
var_dump($_POST['data']);
var_dump($_POST['selected']);

因为我想知道服务器上的内容,但没有打印出来。我怎样才能得到被选中的内容?

2 个答案:

答案 0 :(得分:0)

AJAX选项中的data属性指定了您要查找的值的名称。您的data对象是:

{
    value: selected
}

所以只需使用$_POST['value']即可获取所选的项目名称。如果您想知道POST对象中的内容,只需像这样运行vardump:

vardump($_POST);

可能有助于您将来回答这些问题。

答案 1 :(得分:0)

使用data属性设置要发送到PHP的值,并且还可以设置success以在请求成功时执行代码。

function do_something() {
    var selected = $('#demo').val();
    $.ajax({
        url:        'delete.php',
        type:       'POST',
        dataType:   'json',
        data:       { selected: selected },
        success: function (response) {
            // response comes from PHP
            if (response.result == true) {
                // request was success
            }else if (response.result == false) {
                // request was not successful
            }
        }
    });
}

然后在PHP中,您可以通过$_POST

访问这些值
<?php

$selected = $_POST['selected'];

// rest of the code here
// you can also send response to Javascript here
// for failure echo json_encode(['result' => false]);
// for success echo json_encode(['result' => true])