skip to Main Content

I want to sent some data with ajax to a php file. I created a FormData, and then, i append all the data to it, that i want to send. 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.

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);
        }
    });
}

2

Answers


  1.          data: { formData:formData },
    

    You need to pass the form data object itself, not a plain object.

    data: formData
    
    Login or Signup to reply.
  2. Have you already seen this?

    FormData created from an existing form seems empty when I log it

    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.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search