简体   繁体   English

Jquery ajax FormData 始终为空

[英]Jquery ajax FormData is always empty

I want to sent some data with ajax to a php file.我想用ajax发送一些数据到一个php文件。 I created a FormData, and then, i append all the data to it, that i want to send.我创建了一个 FormData,然后,我将所有要发送的数据附加到其中。 I dont get any error message in the console.我在控制台中没有收到任何错误消息。

My problem is, that the formdata is always empty, and the php file is not getting any data also.我的问题是,formdata 始终为空,并且 php 文件也没有获取任何数据。

The form:表格:

<div class="tab-pane show" id="tab5">
                        <form id="AllapotForm" class="form-horizontal" method="post" enctype="multipart/form-data">
                              <table id="products" class="table table-hover">
                                <thead>
                                    <tr class="tr_bold">
                                        <!--width="33.3%"-->
                                        <td class="left" >Létrehozva</td>
                                        <td class="left" >Állapot</td>
                                        <td class="left" >A megrendelő értesítve email-ben</td>
                                        <td class="left" >Megjegyzés</td>
                                    </tr>
                                </thead>
                                <tbody id="allapotok">
                                    <?php
                                    $get_r_allaptok = mysqli_query($kapcs, 
                                    "
                                        SELECT 

                                            rendeles_allapot.*, 
                                            rendeles_allapotok.rendeles_allapotok_nev

                                        FROM rendeles_allapot 
                                        LEFT JOIN rendeles_allapotok ON rendeles_allapot.allapot_allapot_id = rendeles_allapotok.rendeles_allapotok_id

                                        WHERE allapot_rendeles_id = '$id' ORDER BY allapot_id ASC

                                    ")
                                    or die(mysqli_error($kapcs));
                                    if(mysqli_num_rows($get_r_allaptok) > 0 )
                                    {
                                        while($r_allapot = mysqli_fetch_assoc($get_r_allaptok))
                                        {
                                            if($r_allapot['allapot_notify'] == 0 ) { $ertesitve = "Nem"; }
                                            if($r_allapot['allapot_notify'] == 1 ) { $ertesitve = "Igen"; }
                                            echo '<tr>
                                                    <td class="left">'.$r_allapot['allapot_datetime'].'</td>
                                                    <td class="left">'.$r_allapot['rendeles_allapotok_nev'].'</td>
                                                    <td class="left">'.$ertesitve.'</td>
                                                    <td class="left">'.$r_allapot['allapot_comment'].'</td>
                                                </tr>';
                                        }
                                    }
                                    ?>
                                </tbody>
                                </table>
                                <img src="<?php echo $host; ?>/images/assets/preloader.gif" id="preloaderImage2" style="display:none" class="img-responsive" style="margin:10px auto;">

                                  <div class="form-group row">
                                      <label class="control-label col-md-2">Állapot:</label>
                                      <div class="col-md-2">
                                        <select name="allapot" id="allapot" class="input input-select form-control">
                                            <?php
                                            $check_allapot = mysqli_query($kapcs, "SELECT allapot_allapot_id FROM rendeles_allapot WHERE allapot_rendeles_id = '$id' ORDER BY allapot_id DESC LIMIT 1");
                                            if(mysqli_num_rows($check_allapot) > 0 )
                                            {
                                                $allapot_fetch = mysqli_fetch_assoc($check_allapot);
                                                $ertek = $allapot_fetch['allapot_allapot_id'];
                                            }
                                            else
                                            {
                                                $ertek = intval($a['status']);
                                            }
                                            $get_allapotok = mysqli_query($kapcs, "SELECT rendeles_allapotok_id, rendeles_allapotok_nev FROM rendeles_allapotok WHERE rendeles_allapotok_status = 1 ORDER BY rendeles_allapotok_nev ASC");
                                            if(mysqli_num_rows($get_allapotok) > 0 )
                                            {
                                                while($allapot = mysqli_fetch_assoc($get_allapotok))
                                                {
                                                    $selected = $ertek == $allapot['rendeles_allapotok_id'] ? ' selected="selected"':'';
                                                    echo '<option ' . $selected . ' value="' . $allapot['rendeles_allapotok_id'] . '">' . $allapot['rendeles_allapotok_nev'] . '</option>'."\n";
                                                }
                                            }
                                            ?>
                                        </select>
                                      </div>
                                    </div>
                                    <div class="form-group row">
                                      <label class="control-label col-md-2">Megrendelő értesítése email-ben:</label>
                                      <div class="col-md-2">
                                         <input type="checkbox" name="notify" id="notify" class="form-control"  />
                                      </div>
                                    </div>
                                    <div class="form-group row">
                                      <label class="control-label col-md-2">Megjegyzés hozzáadása az email-hez:<span class="help">Amennyiben ezt bepipálja, a megjegyzés az ügyfélnek kiküldött üzenetbe is bele fog kerülni.</span></label>
                                      <div class="col-md-2">
                                         <input type="checkbox" name="add_text" id="add_text" class="form-control" />
                                      </div>
                                    </div>
                                    <div class="form-group row">
                                      <label class="control-label col-md-2">Fájl csatolása az email-hez:</label>
                                      <div class="col-md-2">
                                         <input type="file" name="file" id="file" class="form-control"  />
                                      </div>
                                    </div>
                                    <div class="form-group row">
                                      <label class="control-label col-md-2">Megjegyzés:</label>
                                      <div class="col-md-8">
                                            <textarea name="comment" id="comment" style="width:100%;height:200px;"></textarea>
                                            <div style="margin-top: 10px; text-align: center;">
                                                <a class="saveButton btn btn-primary" style="color:#fff" onclick="allapot_modosit();" id="history_button">Állapot módosítása</a>
                                            </div>
                                      </div>
                                    </div>
                                </form>
                            </div>

I call this function on a button click event.我在按钮单击事件上调用此函数。

function send_data()
{   
    var html;
    var RendelesID = <?php echo $id; ?>;
    var RendelesUserEmail = "<?php echo html($a['email']); ?>";
    var RendelesUserName = "<?php echo html($a['nev']); ?>";
    var webshopEmail = "<?php echo $webshopEmail; ?>";
    var webshopName = "<?php echo $webshopName; ?>";
    var Allapot = $( "#allapot option:selected" ).val();
    var Comment = CKEDITOR.instances['comment'].getData();

    if($("#notify").is(':checked')){var Notify = 1;}else{var Notify = 0;}
    if($("#add_text").is(':checked')){var AddToEmail = 1;}else{var AddToEmail = 0;}

    var formData = new FormData($('#AllapotForm')[0]);

    formData.append('fileName', $('#file')[0].files[0]);
    formData.append(RendelesID, RendelesID);
    formData.append(RendelesUserEmail, RendelesUserEmail);
    formData.append(RendelesUserName, RendelesUserName);
    formData.append(webshopEmail, webshopEmail);
    formData.append(webshopName, webshopName);
    formData.append(Allapot, Allapot);
    formData.append(Comment, Comment);
    formData.append(Notify, Notify);
    formData.append(AddToEmail, AddToEmail);

    console.log(formData);

    $.ajax({
         type: 'POST',
         cache: false,
         url: 'files/update_rendeles_allapot.php',
         //dataType: 'html',
         enctype: 'multipart/form-data',
         processData: false, 
         contentType: false,
         data: { formData:formData },
         beforeSend: function(){
            $('#preloaderImage2').show();
         },
         success: function(data)
         {
            alert(data);
         },
         complete: function(){
            $('#preloaderImage2').hide();
         },
         error: function (e) {
            alert(e.responseText);
            console.log(e);
        }
    });
}
 data: { formData:formData },

您需要传递表单数据对象本身,而不是普通对象。

data: formData

Have you already seen this?你已经看过了吗?

FormData created from an existing form seems empty when I log it 当我记录时,从现有表单创建的 FormData 似乎是空的

If yes try to check your network look to the Network then take a look at your request.如果是,请尝试检查您的网络,查看网络,然后查看您的请求。

You can also try to check your API via Postman if it's working properly.如果 API 工作正常,您也可以尝试通过 Postman 检查您的 API。

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

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