繁体   English   中英

如何使用ajax将选定的选项发送到php文件?

[英]How can I send a selected option to a php file with ajax?

我正在尝试在php中获取选定的选项,以将其保存在数据库中。 我正在使用Ajax,它与FormData一起发送数据和文件。 一切正常,但是当我选择一个选项并单击“提交”按钮时,php文件什么也没有,仅保存输入的文本数据和文件信息。

HTML

<form id="data" method="post" enctype="multipart/form-data">
     <input type="text" name="first"/>
     <input type="file" name="image"/>
     <select name="disp" id="dispnb" class="dispc">
            <option value="0" selected>Select...</option>
            <option value="2"><b>Option A</b></option>
            <option value="3">Option B</option>
            <option value="3">Option C</option>
     </select>
</form>

jQuery的

$(document).ready(function(){
    $("form#data").submit(function(){
    var formData = new FormData($(this)[0]);

    $.ajax({
        url: 'upload.php',
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});          
});

PHP

<?php
    echo $_POST['first'];
    echo $_POST['disp'];
    echo $_FILES['image']['name'];
?>

尝试这样:

$("#dispnb").change(function(){
var your_selected_value = $('#dispnb').val();
$.ajax({
type: "POST",
url: 'upload.php',
data: {"selected": your_selected_value},
success: function(data) {
 alert(data);
},
error: function(data) {
// Stuff
}
});
});

在upload.php中

<?php
if (isset($_POST['selected'])){
$a = $_POST['selected'];
echo $a;
}

您可以使用$('form')。serialize(); 而不是var formData = new FormData($(this)[0]);

使用此代码,您将获得所有数据。

在您的文本字段中添加ID

<input type="text" name="first" id="first"/>
<input type="file" name="image" id="image"/>

JS

$(document).ready(function(){
    $("form#data").submit(function(){
    var data = array{}
    data.disp = $('#dispnb').val();
    data.first = $('#first').val();
    data.image = $('#image').val();

    $.ajax({
        url: 'upload.php',
        type: 'POST',
        data: data,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});          

然后在您的PHP文件中

<?php
    echo $_POST['first'];
    echo $_POST['disp'];
    echo $_FILES['image']['name'];
?>
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM