为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax 没有从动态创建的表单中获取 php 帖子

Ajax 没有从动态创建的表单中获取 php 帖子

PHP
潇潇雨雨 2021-09-05 17:59:18
我创建了一些 ajax 上传图像并将其加载到页面中。它会在顶角创建一个带有 X 按钮的图像,我正在尝试获取它,因此当单击此按钮时,我会运行另一段 php 代码,将删除正确的图像并重新加载图像。我无法让我的 ajax 代码来获取 php 代码,我不知道为什么。任何指出都会非常有帮助。我发现 dymanically 创建的 elemets 不会被拾取所以不得不将我的 ajax 代码更改为$("body").on("click", "#deleteform button", function(e){所以我达到了这一点,但它仍然没有获取我的 php 代码,我不知道为什么。任何指针都会非常有帮助AJAX JS:$(document).ready(function(){    $("#uploadForm").on('submit',function(e) {        e.preventDefault();        $.ajax({              url: "include_advert/advert_new_gun_add_image.inc.php",          type: "POST",          data:  new FormData(this),          contentType: false,          cache: false,          processData:false,          success: function(data)            {          $("#targetLayer").html(data);            },            error: function()             {            }                     });      });    });      $(document).ready(function(){        $('button.deleteimage').on('click', function(){            var image_id = parseInt($(this).parent().attr('id').replace('deleteform', ''));            console.log(image_id); // You can comment out this. Used for debugging.            e.preventDefault();            $.ajax({                url: "include_advert/advert_new_gun_delete_image.php",                type: "POST",                data:  {image_id: image_id},                contentType: false,                cache: false,                processData:false,                success: function(data)                {                    $("#targetLayer"+image_id).html(data); // targetLayer is dynamic and is different for each record                },                error: function(xhr, status, error) {                    alert(xhr.responseText);                }            });        });    });
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

   $(document).ready(function(){

        $('button.delete-button').on('click', function(){

            var image_id = parseInt($(this).parent().attr('id').replace('deleteform', ''));


            console.log(image_id); // You can comment out this. Used for debugging.


            e.preventDefault();

            $.ajax({

                url: "include_advert/advert_new_gun_delete_image.php",

                type: "POST",

                data:  {image_id: image_id},

                contentType: false,

                cache: false,

                processData:false,

                success: function(data)

                {

                    $("#targetLayer"+image_id).html(data); // targetLayer is dynamic and is different for each record

                },

                error: function(xhr, status, error) {

                    alert(xhr.responseText);

                }

            });

        });

    });

include 'advert_new_gun_save_image_script.inc.php';

include 'advert_new_dropdown_populate/advert_new_gun_image_populate.php';


$imagecount = 0;

echo ('<div class=row sm>');


foreach ($getadvertimages as $getadvertimages_row) {

    echo ( '<div class="image-area" >

    <form  id="deleteform'.$getadvertimages_row['image_id'].'" method = "POST" action ="include_advert/advert_new_gun_delete_image.php" >

    <img src="'. $getadvertimages_row['image_src'] . '"  alt="Preview">

    <button type="button" name="deleteimage" value="" class="remove-image delete-button" style="display: inline;" >X</button>


    </form>

    </div>');

}

echo ('</div>');


同样,您可以使用 image_id 值使“targetLayer”动态化,就像我使用表单的属性 id deleteform 所做的那样。


查看完整回答
反对 回复 2021-09-05
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

上面的答案几乎就在那里,但我不得不将其更改 $('button.delete-button').on('click', function(){为$("body").on("click", "#deleteimage", function(e){


我还删除了:contentType: false, cache: false,processData:false,


感谢 Ghulam 朝着正确的方向努力


  $(document).ready(function(){

                $("body").on("click", "#deleteimage", function(e){

                    var image_id = parseInt($(this).parent().attr('id').replace('deleteform', ''));


                    console.log(image_id); // You can comment out this. Used for debugging.


                    e.preventDefault();

                    $.ajax({

                        url: "include_advert/advert_new_gun_delete_image.php",

                        type: "POST",

                        data:  {image_id: image_id },


                        success: function(data)

                        {

                            $('#imageareadiv').hide();

                            $("#targetLayer").html(data); // targetLayer is dynamic and is different for each record

                        },

                        error: function(xhr, status, error) {

                            alert(xhr.responseText);

                        }

                    });

                });

            });


查看完整回答
反对 回复 2021-09-05
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

$(document).delegate('#deleteform button', 'click', function (e) {

代替

$("body").on("click", "#deleteform button", function(e){


查看完整回答
反对 回复 2021-09-05
  • 3 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信