传递php变量

时间:2010-07-07 21:43:32

标签: php javascript events post javascript-events

我有一个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';,我想将$link[20]传递给browse.php,如果用户在键盘中输入20并按下Go

1 个答案:

答案 0 :(得分:-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