【发布时间】:2016-10-15 08:22:40
【问题描述】:
当我点击提交时,我想向 javascript 脚本发送一个 php 字符串。我已经知道如何使用json_encode 传递变量:
var str1 = <?php echo json_encode($str) ?>;
我想知道的是,如何传递需要从动态下拉列表中选择并且位于while 循环中的变量。
<section class="content">
<form id="admin" action="monitor.php" method="GET">
Servers :<br/>
<select name="category" id="category">
<option value="select">Select...</option>
<?php
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
$result = $redis->keys('*');
$i = 0;
while ($result[$i]!=null)
{
$Addr[$i] = $redis->hget($result[$i], 'Address');
$Port[$i] = $redis->hget($result[$i], 'Port');
$fullAdr[$i] = sprintf ("%s:%s", $Addr[$i], $Port[$i]);
$asdf[$i] = sprintf ("<option value='%s'>%s</option>", $fullAdr[$i], $result[$i]);
echo $asdf[$i];
$i++;
}
?>
</select><br/>
<input type="submit" value="Submit"/>
现在我不能使用var str1 = <?php echo json_encode($str) ?>;,因为我不知道用户会选择哪个选项。
每个选择都包含一个服务器的 IP。单击提交时,我需要将该 IP 传递给 Javascript 脚本。
【问题讨论】:
-
php 只能在第一次生成页面时直接与 JS 对话。之后,php 什么也做不了,除了响应客户端的 ajax 请求。
-
让我粘贴更多代码。单击提交时,我确实会生成一个新页面。我得到一个新的 url,它是包含我需要的 IP 的 url:localhost/test/…
-
@MarcB 我编辑了粘贴的代码,现在您看到提交按钮有一个在同一页面上生成新网址的操作。
-
所以提交表单,然后 php 可以生成您的新脚本,其中包含该发布的值。就像我说的:一旦页面到达客户端,php 就无法对它做任何事情。在表单提交并发送回服务器之前,它无法看到您选择的内容。
标签: javascript php html drop-down-menu redis