加载页面后不存在元素 - php

我们正在创建一个管理控制台,客户端将自己修改自己的网站。

为此,我们使用js和PHP(ajax)创建div:

    $(document).ready(function($)
    {
    function loadContent(page)
        {

            $.ajax(
            {
                url: 'contenu/contenu.php',
                type: 'POST',
                dataType: 'html',
                data:
                {
                    'onglet': page
                },
                success:function(contenu)
                {
                    console.log("success");
                    $("div."+page).html(contenu);   
                }
            })
        };
});

和PHP代码(只是其中的一部分):

$reponse = $db->query('SELECT * FROM philosophie');
$data = $reponse->fetch();
//maj de la version FR de philosophie
echo '<form action="#" method="POST">
<label>Texte en français :</label><br/>
<textarea  name="texte_fr">'.$data["texte_fr"].'</textarea><br/>
<br />
<input type="button" id="maj_philosophie_fr" value="Mettre à jour ce texte" />
<br /><br />';

该表格显示在网站上,效果很好。

之后,我想知道带有以下代码的ID中以“ maj_”开头的按钮的数量:

alert($("[id^='maj_']").length);

我还有0作为回复。

元素尚未准备好,我无法在div上获得更改事件。

我在萤火虫(DOM部分)中看到了元素,它们都是红色字符。

请问您有什么主意吗?

参考方案

在调用成功函数之前,您的警报似乎正在运行。尝试将警报移到其中,更好的方法是,在下一个事件周期中使用setTimeout抛出警报。

$(document).ready(function () {
  function loadContent (page) {
    $.ajax({
      url: 'contenu/contenu.php',
      type: 'POST',
      dataType: 'html',
      data: { 'onglet': page },
      success: function (contenu) {
        console.log("success")
        $("div."+page).html(contenu)

        setTimeout(function () {
          alert($("[id^='maj_']").length)
        }, 100)
        // might even work with 0, if the dom render function 
        // is the very next thing in the queue
      }
    })
  }
})

如果必须处理许多嵌套的Ajax调用,则可能要考虑使用promise api。 Here are the docs for the jQuery implementation of $.promise()

确保您的代码在调用成功函数之后运行,这是无法解决的。代码无法在接收数据之前就知道数据,这意味着要么嵌套您的成功回调,要么使用其他解决方案,例如链接命名的函数回调,或者最好使用promises。

验证IBAN PHP - php

在设计新平台时,我们尝试集成IBAN编号。我们必须确保IBAN已经过验证,并且存储在数据库中的IBAN始终正确。那么验证数字的正确方法是什么? 参考方案 正如我在其他问题中解释的逻辑一样,我尝试自己创建一个函数。根据Wikipedia文章中解释的逻辑,在下面找到合适的功能。国家特定验证。它适合吗http://en.wikipedia.org/wiki/Int…

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

在xpath中选择多个条件 - php

我正在尝试使用来自高尔夫比赛的xml提要,以显示每个高尔夫球手在高尔夫球场上的位置。目前,我想展示符合两个条件的所有高尔夫球手(排在前25名,以及所有加拿大高尔夫球手)。这是xml提要的示例。<GolfDataFeed Type="Leaderboards" Timestamp="3/21/2012 9:18:09 PM&…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…