echo中的javascript(document.getelementbyid)不起作用(可能使用了错误的引号)

echo中的javascript(document.getelementbyid)不起作用(可能使用了错误的引号),javascript,php,getelementbyid,Javascript,Php,Getelementbyid,我正在运行一个while(php),它在单击打开modals时构建行。但我无法在echo中正确获取te javascript 我在网上读了很多书,但没有一本像我这样引用那么多的名言 比以前更详细一点。有一个名为“nuujts”的数据库,其中包含一个“id”、“titel”、“subitel”、“inhoud”(内容)、“aafbeelding”(服务器上的html img src=) underneight是一个硬编码版本的示例,现在需要从mysql服务器中提取该版本 document.getE

我正在运行一个while(php),它在单击打开modals时构建行。但我无法在echo中正确获取te javascript

我在网上读了很多书,但没有一本像我这样引用那么多的名言

比以前更详细一点。有一个名为“nuujts”的数据库,其中包含一个“id”、“titel”、“subitel”、“inhoud”(内容)、“aafbeelding”(服务器上的html img src=)

underneight是一个硬编码版本的示例,现在需要从mysql服务器中提取该版本

document.getElementByID应为$row['id']

<li onclick="document.getElementById('2').style.display='block'" class="w3-border">
   <a href="#">
      <div class="w3-row">
         <img src="images/tumbnail.png" class="w3-image w3-third">
         <div class="w3-twothird"><h6>Leever Bontje Middig</h6>Bòntje middig geörganiseerd door V.V. De Tuinhagedisse</br></br>Laes verder -></div>
      </div>
   </a>
</li>
<div id="2" class="w3-modal">
   <div class="w3-modal-content w3-text-black w3-animate-zoom">
      <header class="w3-container w3-text-white" style="background-color: #005415;">
         <span onclick="document.getElementById('2').style.display='none'" class="w3-button w3-xlarge w3-hover-red w3-display-topright" title="Sjloete">&times;</span>
         <h2>Leever Bòntje Middig</h2>
      </header>
      <p>Bòntje middig geörganiseerd door vv de Tuinhagedisse</p>
      Bòntje middig geörganiseerd door vv de Tuinhagedisse veur miense oet Leeve én omsjtreke!</br>
      Mit o.a. optraejes van Toeter Thijs en Pyure.</br>
      De middig begint om 14.00 oer (zaal aope vanaaf 13.30 oer).</br>
      <p>Ein kaertje kost €5,00, daoveur krieg geer entree & koffie mit vlaai.</p>

      <p>Sjpisjaal veur de miense die van boete Leeve komme, is dur GRATIS verveur geregeld. Opsjtapplaatse: de Donderie en 't Paradies.</p>

      Kaertjes kinne besjteld waere via:</br>
      julia.orval@gmail.com óf jmhn@xs4all.nl</br>
      Gaef naam, adres, tillefoonnummer en 't aantal luuj door véúr 27 fibberwarie. VOL=VOL</br>

      Wilt geer meer informatie hubbe? Gebroek dan baovesjtaonde mailadressen of bel nao 06-16353489.
   </div>
</div>
  • &时代; Leever Bòntje Middig Bòntje middig geörganiseed门vv de Tuinhagedise

    Bòntje middig geörganiseed door vv de Tuinhagedise veur miense oet Leveén Omjtreke
    麻省理工学院o.a.optraejes van Toeter Thijs en Pyure
    从14.00开始计算(zaal aope vanaaf 13.30)
    5.00欧元,daoveur krieg geer Entre&koffie mit Vlai

    这是免费的。Opsjtapplaatse:de Donderie en't Paradies

    Kaertjes kinne besjteld waere通过:
    朱莉娅。orval@gmail.com奥夫jmhn@xs4all.nl
    Gaef naam,adres,tillefoonnummer en't aantal luuj door vúr 27 fibberwarie。体积=体积
    吉尔·米尔·哈比会吗?贝勒瑙的Gebroek和baovesjtaonde mailadressen 06-16353489。

    您始终可以简化PHP,而不是嵌入javascript,而是依赖PHP之外的javascript

    首先,不是onclick,而是将id输出到
    id
    的数据属性中,并添加一个额外的类。然后使用javascript添加单击事件处理程序

    echo "<li data-id='{$row['id']}' class='show-modal w3-border'>";
    
    echo "<span data-id='{$row['id']}' class='hide-modal w3-button w3-xlarge w3-hover-red w3-display-topright' title='Sjloete'>&times;</span>";
    
    
    var objs = document.getElementsByClassName('show-modal');
    
    for(var i = 0; i < objs.length; i++) {
      (function(index) {
        objs[index].addEventListener("click", function() {
           document.getElementById(this.dataset.id).style.display = 'block';
         })
      })(i);
    }
    
    var objs = document.getElementsByClassName('hide-modal');
    
    for(var i = 0; i < objs.length; i++) {
      (function(index) {
        objs[index].addEventListener("click", function() {
           document.getElementById(this.dataset.id).style.display = 'none';
         })
      })(i);
    }
    
    echo“”;
    echo“×;”;
    var objs=document.getElementsByClassName('show-modal');
    对于(var i=0;i
    onclick='document.getElementById(“.$row['id']”)。style.display'block''在一些级别上是错误的。
    。或者至少研究一下PHP的heredoc语法。至于JS,只需使用像jQuery这样的框架,并将JS从标记中移除即可。这段代码维护起来真是一场噩梦。不幸的是,这行不通。。我完全不懂javascript,所以我真的很抱歉。我已经粘贴了var objs=document。。。直到你在我的html底部的最后一行编辑了两行php代码,但是modals没有opening@Mark你能将HTML输出发布到你的问题中而不是PHP预处理版本吗?编辑我的帖子所有内容都应该是清晰的,对吗now@Mark很抱歉,我的代码有错。我刚刚测试了它,并验证了它是否有效。
    echo "<li data-id='{$row['id']}' class='show-modal w3-border'>";
    
    echo "<span data-id='{$row['id']}' class='hide-modal w3-button w3-xlarge w3-hover-red w3-display-topright' title='Sjloete'>&times;</span>";
    
    
    var objs = document.getElementsByClassName('show-modal');
    
    for(var i = 0; i < objs.length; i++) {
      (function(index) {
        objs[index].addEventListener("click", function() {
           document.getElementById(this.dataset.id).style.display = 'block';
         })
      })(i);
    }
    
    var objs = document.getElementsByClassName('hide-modal');
    
    for(var i = 0; i < objs.length; i++) {
      (function(index) {
        objs[index].addEventListener("click", function() {
           document.getElementById(this.dataset.id).style.display = 'none';
         })
      })(i);
    }