Javascript 通过iframe的外部POST表单

Javascript 通过iframe的外部POST表单,javascript,php,ajax,iframe,Javascript,Php,Ajax,Iframe,我正在尝试获取一个页面,其中包含一个POST表单,可以加载到iframe中,以便用户能够确认诸如删除列表之类的操作。我已经成功地将JS和表单页面加载到iframe中,但是当我单击表单中的某个操作时,它并没有更新列表。相反,它只是刷新页面 表单工作正常,因为如果我尝试在浏览器中手动访问内容url,并更新表单,它工作正常 如何让iframe内容刷新而不是父页面,并将响应加载到iframe本身中?我到底做错了什么 感谢您的帮助 这是我的密码: HTML: 表格: 您将要删除! 是,删除 不 首先,更

我正在尝试获取一个页面,其中包含一个POST表单,可以加载到iframe中,以便用户能够确认诸如删除列表之类的操作。我已经成功地将JS和表单页面加载到iframe中,但是当我单击表单中的某个操作时,它并没有更新列表。相反,它只是刷新页面

表单工作正常,因为如果我尝试在浏览器中手动访问
内容url
,并更新表单,它工作正常

如何让iframe内容刷新而不是父页面,并将响应加载到iframe本身中?我到底做错了什么

感谢您的帮助

这是我的密码:

HTML:

表格:


您将要删除!
是,删除
不

首先,更正以下错误,然后查看它是否有效:

  • 在您的示例中,右括号后缺少分号
  • 关闭php标记,然后继续url,然后添加另一个关闭的php标记
  • 您要查找的内容url中包含以下内容:

  • _ID()是什么?我看不出这个功能。如果存在,则必须返回将存储在变量$the_ID中的值。还必须在按钮标记之前调用该函数以获取该变量
  • 在JS中,您需要将所有内容包装在
    $(document).ready(function(){}
  • 似乎您正在尝试执行GET请求而不是POST请求,因为您不是在正文中而是在url中发送任何数据
  • 第一个结尾缺少分号。请单击“函数”
  • 我甚至没有看其他的函数。点击函数是因为有一些重复和更奇怪的东西

  • 您正试图用以下js代码替换类“popup”中的html

    HTML => <div class="popup"><iframe id="iframeid" src=""></iframe></div>
    JS => $('.popup').html(response);
    
    $(document).ready(function() {      
          $(document).click(function(e) {
              if ($(".popup").is(":visible")) {
                $(".popup").fadeOut("fast")
              }
          });
    
         $(".myclass").click(function() {
              if (!$(".popup").is(":visible")) {
                $('#iframeid').attr('src',$(this).attr('content-url'));
                $(".popup").fadeIn("slow");
              }
              return false;
          });
    
          $(".popup").click(function(e) {
              e.stopPropagation()
          })
      });
    

    谢谢!这完全有道理。现在,我需要弄清楚为什么没有使用上述脚本设置src。可能与class=“myclass”使用相同的按钮有关在该页面上的每个项目旁边,iframe不知道要设置哪个src URL。可能需要在某个地方添加getelementbyid?我不认为使用class=“myclass”的相同按钮会有问题。因为单击函数使用$(这)要获取内容url,它总是获取您单击的按钮的内容url…您是否检查了属性“src”点击按钮后的iframe?控制台中有js错误吗?完全没有错误,它只显示如上所述,当我进入一个只有一篇文章的页面时,src加载良好。这让我相信更多的是在同一页面上有多个项目(只是不同的ID ofc)。当您更改代码时,它应该显示ID=“mynewiframeid”,not id=“iframeid”。不是吗?顺便说一句,我在答案中添加了一个小提琴…函数工作正常。
    the_id()
    工作正常,因为它之前在函数中抓取了一个查询集。重复的JS是一个错误,因为我在测试其他东西时忘记了删除它。不过,非常感谢您的响应!
      <div class="popup_content"> 
                <h3> You are about to delete <b><?php echo $title; ?></b>!</h3>
                <?php
                if(isset($_POST['yes_confirm']))
                {
                    $s = "update ".$wpdb->prefix."posts set post_status='trash' where id='$pid'";
                    $wpdb->query($s);
                    echo '<div class="deleted_item_ok">';
                    printf(__('Your item has been deleted successfully!'));
                    echo '</div>';
                }
                else
                {
        ?>
                <form method="post">
                <div class="are_you_sure_delete">
                <?php
                _e('Are you sure you want to delete this item?');
                ?>
                </div>
     <button class="button-small button-w-green" type="submit" id="submits" name="yes_confirm">Yes, Delete</button>
     <button class="button-small button-w-red" type="submit" id="submits" name="no_confirm">No!</button>
                </form>
                <?php } ?>
                </div>
    
    HTML => <div class="popup"><iframe id="iframeid" src=""></iframe></div>
    JS => $('.popup').html(response);
    
    $(document).ready(function() {      
          $(document).click(function(e) {
              if ($(".popup").is(":visible")) {
                $(".popup").fadeOut("fast")
              }
          });
    
         $(".myclass").click(function() {
              if (!$(".popup").is(":visible")) {
                $('#iframeid').attr('src',$(this).attr('content-url'));
                $(".popup").fadeIn("slow");
              }
              return false;
          });
    
          $(".popup").click(function(e) {
              e.stopPropagation()
          })
      });