2016-06-14 109 views
0

我想发送一个PHP字符串到JavaScript脚本,当我点击提交。我已经知道如何通过变量,json_encode发送PHP字符串到JavaScript提交

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脚本。

+0

php只能在页面第一次生成时直接与JS通话。之后,除了响应客户端的Ajax请求,php不能做任何事情。 –

+0

让我粘贴更多的代码。当我点击提交时,我确实会生成一个新页面。我得到一个新的url,它是包含我需要的IP的url:http://localhost/test/monitor.php?category = http%3A%2F%2Flocalhost%3A4561 – Mirakurun

+0

@MarcB我编辑了粘贴的代码,现在你看到该提交按钮具有在同一页面上生成新网址的操作。 – Mirakurun

回答

0

如果有人遇到同样的问题,我会回答以备参考。

我把它通过把一个PHP上的文件的顶部工作:

<?php 

$JSAddress = $_GET['servers']; 

?> 

这是我后来传递给JavaScript和:

var str1 = <?php echo json_encode($JSAddress) ?>; 

所以基本上,当用户点击提交,它发送请求到上面的PHP存储的价值,并将其传递给JavaScript。