У меня есть две формы, первая из которых полна различных сетей (например, A, B, C), а вторая форма полна различных Java-функций (например: Average.java, length.java, edge.java), которые принимают текст файл, который представляет сеть (например, networkA.txt — текстовый файл для сети A) и запустите код. Я эту часть разобрался. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу сократить количество страниц, которые мне нужно использовать для повышения эффективности.
У меня есть 26 разных сетей, и я не хочу, чтобы это означало, что у меня есть 50 разных файлов сетевых форм и, следовательно, 26 разных файлов форм функций.
В идеале я хочу network.php (где пользователь может выбирать из 26 различных сетей —> A, B, C … Z) с переключателями. И тогда я хочу, чтобы пользователь мог отправить форму. На следующей странице, которая выскакивает function.php, я бы хотел, чтобы там была форма функции с переключателями (например: среднее, длина, количество.
Затем с помощью этой кнопки отправки (для function.php) я хочу взять две формы и с выбранными вариантами (например, сеть: функция: ребра) запустить этот сетевой текстовый файл через код Java для этой функции и выплюнуть результат на странице результатов.
Поэтому, чтобы уточнить мой вопрос, мне интересно, есть ли способ сохранить выбор из сетей, сохраненных, когда я перехожу из network.php в function.php, чтобы затем запустить код java и выплюнуть в results.php. Я читал, что в javascript есть функция show./hide, которая делает это, однако я не могу найти ни одного хорошего учебника или веб-страницы, посвященной тому, как это сделать, в контексте, который я пытаюсь сделать. Любая помощь, советы, указатели или примеры кода приветствуются и приветствуются.
NetworkA.txt
0 1
0 2
0 3
1 2
2 3
3 4
4 5
5 6
5 7
6 7
Edges.java
import java.util.*;
import java.io.*;
class Edges{
public static void main(String[] args){
try{
FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(fr);
String line = null;
int numEdges = 0;
while ( (line = br.readLine() ) != null){
System.out.println(line);
numEdges++;
}
System.out.println("Total # Edges: "+numEdges);}
catch(Exception e){e.printStackTrace();}
}
}
RunCode.php —> Это то, что я использую для компиляции кода Java на моей странице PHP
$PATH="C:\Program Files\Java\jdk1.8.0_101\bin";
echo exec("javac Edges.java 2>&1");//shows # of errors
echo "<br />";
echo exec("java Edges networkA.txt 2>&1");//this line executes it
echo "<br />";
echo shell_exec("javac Edges.java 2>&1 ");//compiles it
networkA.php —> networkA выполняет код и дает мне результат в этом случае = 10 ребер
<header>
<div class="nav">
<ul>
<li><a href="logout.php">Logout</a></li>
</ul>
</div>
<div class="form">
<?php$PATH="C:\Program Files\Java\jdk1.8.0_101\bin";
echo exec("javac ListEdges.java 2>&1");//shows # of errors
echo "<br />";
echo exec("java ListEdges networkA.txt 2>&1");//this line executes it
echo "<br />";
echo shell_exec("javac ListEdges.java 2>&1 ");//compiles it
?>
<a class="tryagain" href='index.php' target="_blank">Try Again?</a></p>
</div>
</header>
<footer>
<div class="footer">
by Jason Bruno
</div>
</footer>
Похоже, вы хотите использовать действие POST для отправки вашего выбора в network.php:
<form action="network.php" method="post">
<label><input type="radio" name="networkChoice" value="A"> Network A</label>
<label><input type="radio" name="networkChoice" value="B"> Network B</label>
...put more options here...
<input type="submit">
</form>
Затем вы можете получить данные, которые вы отправили обратно в PHP, используя $ _POST []
$network = $_POST["networkChoice"];
...do stuff...
Больше примеров POST / GET: https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data#The_POST_method
Других решений пока нет …