在PHP代码中使用JS变量?

时间:2011-07-20 17:51:54

标签: php javascript

我正在尝试这样做,以便当您单击按钮时,它会向页面添加新字段。我知道onclick只能使用JS函数,所以我决定尝试运气制作JS脚本。起初我曾尝试过

<html>
<head><title>multiple line test</title><head>
<body>
<script type="text/javascript">
var texters='';
var num=0;
function newInput(nomnom)
{
    texters='';
    num=nomnom+1;
    for (var i=0; i<nomnom; i++)
    {
        texters+='<p>\
        Please specify a file, or a set of files:<br>\
        <input type="file" size="40">\
        </p>\
        <p>\
        Caption : <br> \
        <input type="text" size="30">\
        </p>';\
    }
    document.write(texters+'<div>\
    <input type="submit" value="Send">\
    </div>\
    </form>\
    <br>' + '<input type="button" value="new entry" onclick="newInput(num)">' . '</body></html>');
}
newInput(num);
</script>
</body>
</html>

但这不起作用。所以我尝试添加一点点php,因为我知道它更好。我试过这个:

<html>
<head><title>multiple line test</title><head>
<body>
<script type="text/javascript">
var texters='';
var num=0;
function newInput(nomnom)
{
    document.write(<?php
    tex='';
    for (var i=0; i<=(nomnom); i++)
    {
        tex.='<p>
        Please specify a file, or a set of files:<br>
        <input type="file" size="40">
        </p>
        <p>
        Caption : <br> 
        <input type="text" size="30">
        </p>';
    }
    echo tex . '<div>
    <input type="submit" value="Send">
    </div>
    </form>
    <br>' . '<input type="button" value="new entry" onclick="newInput(num)">' . '</body></html>';
?>);
}
newInput(num);
</script>
</body>
</html>

但是我知道这不起作用,因为我无法获取我用于JS和PHP中使用的字段数量的变量。有什么方法可以强制JS把这个数字放在$ _POST中,这样我就可以在不用另一个表单的情况下检索它了吗?或者有更好的方法来做我想做的事情吗?

3 个答案:

答案 0 :(得分:2)

您可以在表单上设置隐藏的输入字段,并使用Javascript填充该字段。

答案 1 :(得分:2)

您应该尝试使用jquery http://jquery.com/或simialr脚本库,因为这样可以更轻松地操作DOM。使用jquery,您可以创建一个onClick函数,它可以在几行代码中执行您想要的操作:

var onClickAddInput = function()
{
    $('div#your_div_id').append('<input type="text" size="30" />');
}

如果你需要添加更多输入框,你可以循环append语句并给出与循环数相等的单个输入框id。

答案 2 :(得分:1)

评论的PHP用于服务器端,javascript用于客户端。 html是可以创建的ui元素。如果您需要在服务器上完成某些操作,请在PHP中执行,如果需要在客户端上完成,请在javascript中执行。以下是javascript的示例。

function newInput(nomnom)
{
    var tex='';
    for (var i=0; i<=(nomnom); i++)
    {
     tex+='<p>Please specify a file, or a set of files:'; 
     tex+='<br/><input type="file" size="40"></p>'; 
     tex+='<p>Caption :'; 
     tex+='<br/><input type="text" size="30"></p>';
    }
    document.getElementById('form_id').innerHTML += tex;
}

调用此函数时,它将创建许多新输入并将其添加到ID为“form_id”的表单中。