Javascript JScript如何从我的SQL数据库中提取以保存重复的代码?

Javascript JScript如何从我的SQL数据库中提取以保存重复的代码?,javascript,php,mysql,function,Javascript,Php,Mysql,Function,出于我自己的原因,我在一个单独的脚本中使用JS,链接到我的PHP文件中,以执行几个几乎相同的函数,但每个函数中的图像会发生如下变化: function Clicky1(element) { var XTag= element.parentElement.previousElementSibling.firstChild; if (element.src == "../image1.jpg") { element.src = "../image2.jpg"

出于我自己的原因,我在一个单独的脚本中使用JS,链接到我的PHP文件中,以执行几个几乎相同的函数,但每个函数中的图像会发生如下变化:

function Clicky1(element) {
    var XTag= element.parentElement.previousElementSibling.firstChild;
    if (element.src == "../image1.jpg") 
    {
        element.src = "../image2.jpg";
        XTag.innerHTML = XText;
        localStorage.setItem(XTag.id, XText);
    }
    else 
    {
        element.src = "../image1.jpg";
        XTag.innerHTML = " ";
        localStorage.removeItem(XTag.id);
    }
}
function Clicky2(element) {
    var VTag= element.parentElement.previousElementSibling.firstChild;
    if (element.src == "../image3.jpg") 
    {
        element.src = "../image4.jpg";
        VTag.innerHTML = VText;
        localStorage.setItem(VTag.id, VText);
    }
    else 
    {
        element.src = "../image3.jpg";
        VTag.innerHTML = " ";
        localStorage.removeItem(VTag.id);
    }
} //this repeats 3 more times

但是我想要的只是使用类似{$myDB['images']}的东西,因为我在每个函数中手动插入链接的所有图像都已存储在我的数据库中。-我该如何用最简单的方法来实现这一点呢?

你不能像那样将PHP代码注入Javascript。如果Javascript位于.php文件中的一个块中,则可以将运行某些php代码的结果作为硬编码值注入脚本,但如果它位于单独的.js文件中,则不能,因为它在发送到浏览器之前不会通过php脚本引擎


但是这段代码太重复了——为什么不把图像路径作为函数的参数呢?那么您只能有一个可重用的函数。除了这些名称之外,代码的功能是相同的。而且,如果这些函数是从.php文件中的JavaScript调用的,那么此时可以使用php将图像路径注入其中

您可以将函数更改为类似以下内容:

function Clicky(element, img1, img2) { 
  var XTag= element.parentElement.previousElementSibling.firstChild; 
  if (element.src == img1) { 
    element.src = img2; XTag.innerHTML = XText; 
    localStorage.setItem(XTag.id, XText); 
  } 
  else { 
    element.src = img1; 
    XTag.innerHTML = " "; 
    localStorage.removeItem(XTag.id); 
  } 
} 
Clicky(someElement, "<?php echo $myDB['images']; ?>", "<?php echo $myDB['images1']; ?>");

然后你可以从一个窗口调用它,你不能像那样把PHP代码注入你的Javascript。如果Javascript位于.php文件中的一个块中,则可以将运行某些php代码的结果作为硬编码值注入脚本中,但如果它位于单独的.js文件中,则不能,因为它在发送到浏览器之前没有经过PHP脚本引擎,但是这段代码太重复了——为什么不把图像路径作为函数的参数呢?那么您只能有一个可重用的函数。除了这些名称之外,代码的功能是相同的。另外,如果这些函数是从.php文件中的JavaScript调用的,那么您可以在此时使用php将图像路径注入其中。感谢@ADyson的想法,所以当我将脚本插入php文件时,在一个块中,我是否可以只使用if element.src='{$myDB['images']}?其中,在数据库的“images”中,我只有图像文件路径,如“../image1.jpg”yes。尽管这仍然有效地将其硬编码到Javascript中,这意味着你最终仍然需要多次重复相同的函数。我想你应该将函数改为更像函数Clickyelement、img1、img2{var XTag=element.parentElement.previousElementSibling.firstChild;if element.src==img1{element.src=img2;XTag.innerHTML=XText;localStorage.setItemXTag.id,XText;}else{element.src=img1;XTag.innerHTML=;localStorage.removietemxtag.id;}