JavaScript OO编程并将变量传递给PHP

时间:2013-12-19 21:20:09

标签: javascript php

使用Joomla自定义输出模块显示某个类别的文章,但空间有限。

以下是测试网站:http://cshtest.camdendiocese.org/

在页脚中,您会看到4列中的第3列有数据。它使用JavaScript向前和向后滚动。但正如你所看到的那样,它有4列,所有这些列在不同的类别上都是一样的。

我在创建其他列时遇到问题,因为它们都需要使用单独的数据项,因此需要单独的模块。我试图创建一个对象但是已经停止在PHP中指定一个JavaScript对象。

以下是正在运行的JavaScript:

// This script provides forward and backward paging for article intros in footer-1
// create an array of strings
// Each array element is initalized at this time to establish global scope
var mytexts = []; 
mytexts[0] = "<h2>this is text string one</h2>";
mytexts[1] = "<h2>this is text string two</h2>";
mytexts[2] = "<h2>this is text string three</h2>";

// initialize variables
var txtNum = 0;
var txtLength = mytexts.length - 1;

// function to change string
function changeText(direction, col) {
// get next text number
txtNum = txtNum + direction;

// make sure we loop
if (txtNum > txtLength) {
    txtNum = 0;
    }
if (txtNum < 0) {
        txtNum = txtLength;
}
    // change the src attribute of the image
var colx = "col-" + col;
document.getElementById( colx ).innerHTML = mytexts[txtNum];

return false; // prevent default link
}

这是我尝试创建对象的构造函数:

function CatArticles(x0, x1, x2) {
    // This script provides forward and backward paging for article intros in footer-1
    // create an array of strings
    // Each array element is initalized at this time to establish global scope
    this.mytexts = []; 
    this.mytexts[0] = x0;
    this.mytexts[1] = x1;
    this.mytexts[2] = x2;

    // initialize variables
    this.Num = 0;
    this.txtLength = this.mytexts.length - 1;
    this.changeText = changeText;
}

// function to change string
function changeText (direction, col) {
    // get next text number
    this.Num = this.Num + direction;

    // make sure we loop
    if (this.Num > this.txtLength) {
        this.Num = 0;
        }
    if (this.Num < 0) {
            this.Num = this.txtLength;
    }
    // change the src attribute of the image
    var colx = "col-" + col;
    document.getElementById( colx ).innerHTML = this.mytexts[this.Num];

    return false; // prevent default link
}

我可以在PHP中使用脚本标记来实例化该对象,但是无法想到如何获取在html中创建的变量以进行输出。你有建议或方法吗?

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,考虑到它们是两个不同的脚本,服务器端和客户端另一个,解决方案是在页面已经由php生成之后使用ajax进行交互。