2016-06-14 2 views
0

Я хочу отправить строку php в javascript-скрипт, когда я нажимаю кнопку submit. Я уже знаю, как передать переменную с json_encode:Отправить php строку в javascript на submit

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, когда я нажимаю кнопку submit.

+0

php может только напрямую разговаривать с JS при первой сгенерированной странице. после этого php не может ничего делать, кроме как в ответ на запросы ajax от клиента. –

+0

Позвольте мне вставить больше кода. Когда я нажимаю кнопку «Отправить», я создаю новую страницу. Я получаю новый url, который является URL-адресом, который содержит IP-адрес: http: //localhost/test/monitor.php? Category = http% 3A% 2F% 2Flocalhost% 3A4561 – Mirakurun

+0

@MarcB Я редактировал вставленный код, теперь вы видите кнопка submit имеет действие, которое генерирует новый URL-адрес на той же странице. – Mirakurun

ответ

0

Я отвечаю им за будущую ссылку, если кто-то сталкивается с той же проблемой.

Я сделал его работу, поставив PHP поверх файла:

<?php 

$JSAddress = $_GET['servers']; 

?> 

который я позже перешел к JavaScript с:

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

Так в основном, когда пользователь нажимает на отправить, его отправляет запрос на php выше, который сохраняет значение и передает его в javascript.