mysql — PHP и обработка форм

Я работаю с PHP и MySQL около двух месяцев, и недавно я начал использовать формы. У меня есть основной файл обработки форм:

if($_POST['checkforpothole'] == "yes"){
echo "thank you for your help"."<br/>";
echo "please enter in a latitude and longitude"."<br/>";
include 'FormForGettingLatAndLong.php';
$Lat = $_POST['latitude'];
$Long = $_POST['longitude'];
include 'MySQLSample.php';
echo addCoord($Lat, $Long);
include 'MySQLSample.php';
die();
}

if($_POST["checkforpothole"] == "no"){
echo "here is the table"."<br/>";
include 'MySQLSample.php';
die();
}
?>

Форма, к которой я пытаюсь получить доступ, выглядит следующим образом:

<?php
?>
<!DOCTYPE HTML>
<html>
<body>

<form action="FormProcessing.php" method="post">
Latitude: <input type="text" name="latitude"><br>
Longitude: <input type = "text" name = "longitude"><br>
<input type="submit">

</form>
</body>
</html>

Вот форма для проверки отверстия:

<?php

?>
<!DOCTYPE HTML>
<html>
<body>

<form action="FormProcessing.php" method="post">
Add a new pothole? (yes or no): <input type="text" name="checkforpothole"><br>
<input type="submit">
</form>
</body>
</html>

У меня проблемы с доступом к широте и долготе в этой форме, которая находится в отдельном файле. Есть ли способ получить доступ к индексу из второй формы после получения доступа из другой формы изначально. Пожалуйста, дайте мне знать, если есть проблема в первой программе, особенно с первым оператором if.

-1

Решение

Прежде всего, я думаю, что логика вашего кода нуждается в небольшом пересмотре.

if($_POST['checkforpothole'] == "yes"){
echo "thank you for your help"."<br/>";
echo "please enter in a latitude and longitude"."<br/>";
include 'FormForGettingLatAndLong.php';
$Lat = $_POST['latitude'];
$Long = $_POST['longitude'];
include 'MySQLSample.php';
echo addCoord($Lat, $Long);
include 'MySQLSample.php';
die();
}

if($_POST["checkforpothole"] == "no"){
echo "here is the table"."<br/>";
include 'MySQLSample.php';
die();
}
?>

Как я понял из вашего кода, кажется, что вы хотите получить дополнительную информацию, используя вторую форму, когда пользователь отправил первую форму. и вы пытаетесь сделать это, включив вторую форму при обработке первой формы, а затем сразу же прочитав значения второй формы:

    include 'FormForGettingLatAndLong.php';
$Lat = $_POST['latitude'];
$Long = $_POST['longitude'];

но так у вас не будет долготы и широты! потому что вы только что отправили вторую форму пользователю, чтобы получить эти данные! и когда она отправит обратно вторую форму, выполнение вашего кода начнется с начала (в отдельном процессе). работа с формами не похожа на обычные процедуры ввода (как старые «cin»<<«,» fscanf () «или» System.console (). readLine () «). Вместо этого вы должны распечатать вторую форму и подождать, пока пользователь отправит ее.

так что вы можете делать что хотите, используя эти три файла:

index.html:

<!DOCTYPE HTML>
<html>
<body>

<form action="firstFormProcessing.php" method="post">
Add a new pothole? (yes or no): <input type="text" name="checkforpothole"><br>
<input type="submit">
</form>
</body>
</html>

firstFormProcessing.php:

<?php
if($_POST['checkforpothole'] == "yes"){
echo "thank you for your help"."<br/>";
echo "please enter in a latitude and longitude"."<br/>";
echo <<<END
<!DOCTYPE HTML>
<html>
<body>

<form action="secondFormProcessing.php" method="post">
Latitude: <input type="text" name="latitude"><br>
Longitude: <input type = "text" name = "longitude"><br>
<input type="submit">

</form>
</body>
</html>
END;
die();
}

if($_POST["checkforpothole"] == "no"){
echo "here is the table"."<br/>";
include 'MySQLSample.php';
die();
}
?>

secondFormProcessing.php:

<?php
echo "now i have Latitude=$_POST[latitude] and Longitude=$_POST[longitude]";
?>

Постскриптум это мой первый ответ на stackoverflow. Я надеюсь, что это поможет вам и, кстати, извините за мой плохой английский.

0

Другие решения

Я бы взял 2 файла вместо того, чтобы возиться с одной страницей, вот как я бы это сделал.
Если это поможет вам, не забудьте пометить вопрос как ответивший.

index.php

<?php

if($_SERVER['REQUEST_METHOD'] === "POST") {
if(isset($_POST['checkForPothole'])) {
if($_POST['checkForPothole'] == true) {
header("Location: addPole.php");
}
}
}

?>

<!DOCTYPE HTML>
<html>
<body>
<form action="index.php" method="post">
Add a new pothole? (yes or no): <input type="text" name="checkForPothole"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>

addPole.php

<?php

if($_SERVER['REQUEST_METHOD'] === "POST") {
if(isset($_POST['latitude']) && isset($_POST['longitude'])) {
if(!empty($_POST['latitude']) && !empty($_POST['longitude']) {
require_once("MySQLSample.php");

$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];

addCoord($latitude, $longitude); //guessing that this is a function in the mysqlsample file
}
}
}

?>

<!DOCTYPE HTML>
<html>
<body>
<form action="FormProcessing.php" method="post">
Latitude: <input type="text" name="latitude"><br>
Longitude: <input type="text" name="longitude"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
0

По вопросам рекламы [email protected]