修改php的javascript代码

时间:2011-09-05 07:35:35

标签: javascript

我使用的是一系列复选框,它们的名称都是checkbox1 .... checkbox40。我正在生成一系列带有'1'和'0'的刺痛,如果选中复选框,则sting将与'1'连接,否则它将与'0'连接。我已经成功实现了PHP的想法但是现在我正在使用Ajax我想为java脚本开发相同的代码。我的PHP代码是

if (isset($_POST[submit]))
{
for ($i=1; $i<41; $i++)
    {
    $walue = "restriction".$i;
    if(isset($_POST[$walue])) {$val .="1";} else {$val .="0";}
    }
}
echo "Equivalent String: ".$val."<p>";

使用Javascript实现它我已经在表单的提交事件上调用了一个函数。

我的表单ID为theForm,我的复选框名称为restriction1....restriction40。请给我提示实施这个想法。

2 个答案:

答案 0 :(得分:1)

那么......这样的事情?

getCheckedString = function () {
    var chunks = [];
    var checkboxes = $("#theForm").children('input[type=checkbox]').each(function () {
        chunks[chunks.length] = $(this).is(':checked') ? '1' : '0';
    });
    return chunks.join('');
}

这将按照它们在表单上的顺序收集所有复选框,在数组中放置“1”或“0”,然后将连接的数组返回到字符串中。它不是特定的名称,所以如果表格中有其他复选框让我知道,我会改变我的答案。

答案 1 :(得分:1)

如果您只有命名复选框,则可以执行以下操作:

function getCheckedString1() {
    var val = "";
    for (var i = 1; i <= 40; ++i) {
        var boxes = document.getElementsByName("restriction" + i); // returns an array
        if (boxes[0]) {
            val += boxes[0].checked ? "1" : "0";
        }
    }
    // alert(val);  
    return val;
}

然而,通过ID识别引用的HTML元素更容易且通常的实践。所以,你会增强你的HTML:

<input type="checkbox" name="restriction1" id="restriction1" ...
<input type="checkbox" name="restriction2" id="restriction2" ...

然后使用:

function getCheckedString2() {
    var val = "";
    for (var i = 1; i <= 40; ++i) {
        var box = document.getElementById("restriction" + i); // returns the unique element
        if (box) {
            val += box.checked ? "1" : "0";
        }
    }
    // alert(val);
    return val;
}