2016-06-14 112 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。