【问题标题】:Passing PHP variable [duplicate]传递PHP变量[重复]
【发布时间】:2011-03-13 01:30:59
【问题描述】:

我有一个 PHP 数组:

foreach($xpath->query('//a') as $element) {
     $linklabel[] = $element->textContent;
     $link[] = $element->getAttribute("href");
     $i=$i+1;
}

我还有一个 HTML 表单:

<form name="keypad" id="form"  onSubmit="return pass(this)">
<input type="text" size="100%" length="25" value="" name="lcd">
<input type="button" value=" 1 " name="one" onClick="this.form.lcd.value+=this.value">
<input type="button" value=" 2 " name="two" onClick="this.form.lcd.value+=this.value">
<input type="button" value=" 0 " name="zero" onClick="this.form.lcd.value+=this.value">
<input type="submit" name="Submit" id="Submit" value="Go" >
</form>

如何编写 onSubmit 函数pass(),它从键盘获取值并将相应的$link[] 值发送到browse.php。例如,如果 $link[20]='google.com'; ,如果用户在键盘中输入 20 并按 Go,我想将 $link[20] 传递给 browse.php。

【问题讨论】:

    标签: javascript php post events dom-events


    【解决方案1】:

    您需要以 Javascript 可以解释的方式输出 PHP 数组,例如 Javascript 数组:

    <?php
    echo "<script type=\"text/javascript\">\n";
    echo "var links = [";
    foreach($links as $link)
        echo "'$link', ";
    echo "];\n";
    echo "</script>\n";
    ?>
    

    您还需要函数可以设置的形式的元素:

    <input type="hidden" name="url">
    

    然后你的 Javascript 函数可以索引到数组并修改表单元素:

    function pass() {
        id = parseInt(document.getElementsByTagName('form')[0].lcd.value, 10);
        document.getElementsByTagName('form')[0].url.value = links[id];
    }
    

    由于某种原因,您的按钮值周围有空格;它们应该只是数字,否则lcd.value 将在整个过程中出现空格。如果您希望按钮具有填充,请使用 CSS。

    最后,如果要在另一端检查$_POST,则需要发布表单,因此将标签更改为:

    <form name="keypad" id="form" method="post" onSubmit="return pass()">
    

    你也可以只在目标页面上使用$_GET

    【讨论】:

    • 谢谢你迈克尔..让我试试这个......
    • 当我尝试使用“for($links as $link) ...时出现错误。是因为我的编码问题,我是 php 的初学者
    • 任何人都可以提出更好的想法。 echo 的想法正在用链接破坏我的页面
    • @Kiran 我的错误,我写的是for 而不是foreach。并且您需要将 PHP 部分放在脚本标签中,以便将输出解析为 Javascript;我在示例中添加了一种方法
    • @Kiran 我根据您的 cmets 更改了更多内容
    猜你喜欢
    • 2014-01-11
    • 2016-02-23
    • 2013-10-28
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    相关资源
    最近更新 更多