post — оператор переключателя PHP не распознает кнопку отправки

У меня есть страница, которая получает информацию из базы данных и должна обновлять информацию при ее отправке. Я использую оператор switch, но он не распознает значение кнопки submit. Коды форм находятся в файле «personal_change_form.inc». Коды следующие. Заранее благодарю за любую помощь.
personal_change.php

<?php
/* Name:    personal_change.php
* Desc:    This page updates information if there is a change
*/
include("misc.inc");

session_start();
if(@$_SESSION['auth']  != "yes")
{
header("Location:user_login.php");
exit();
}

switch ( $_POST['button'])
{
case "Update":

$connect    =   mysqli_connect($host,$user,$password,$database)
or die("Couldn't connect to database.");
$sql   =   "SELECT * FROM data WHERE loginName='{$_SESSION['logname']}'";
$result =  mysqli_query($connect,$sql)
or die ("Couldn't execute query.");
$row=  mysqli_fetch_assoc($result);
extract($row);
if($value != $_POST['value'])
{
$sql = "INSERT INTO data (loginName,createDate,password,                                                                    firstName,lastName,title,gender,course,sector,experience,qualific,location,mobile,email) VALUES                                     ('$_POST[loginName]',
'',
SHA1('$_POST[password]'),
'$_POST[firstName]',
'$_POST[lastName]',
'$_POST[Title]',
'$_POST[Gender]',
'$_POST[course]',
'$_POST[Sector]',
'$_POST[experience]',
'$_POST[qualific]',
'$_POST[Location]',
'$_POST[mobile]',
'$_POST[email]')";mysqli_query($connect,$sql)
or die("Couldn't execute query");
header("location:personal.php");}

break;
default:
include("personal_change_form.inc");
}?>

personal_change_form.inc

<?php
/*  Program:    personal_change_form.inc
*  Desc:       This program displays information from the database
*              and allow user to change it.
*/
include("misc.inc");
$personal_change_array  =   array ("loginName"  =>  "User Name:",
"password"  =>  "Password:",
"firstName" =>  "First Name:",
"lastName"  =>  "Last Name:",
"title"     =>  "Title:",
"gender"    =>  "Gender:",
"course"    =>  "Courses offered:",
"sector"    =>  "Industry sector:",
"experience"=>  "Trainer experience(years):",
"qualific"  =>  "Academic qualifications:",
"location"  =>  "Location\City:",
"mobile"    =>  "Mobile:",
"email"     =>  "E-mail:");
?>
<html>
<head><title>Update Information</title></head>
<style type="text/css">
<!--
label {font-weight:bold; float:left; width:27%;
margin-right: .5em; text-align:right;}
fieldset {border:2px solid #000000 }
legend {font-weight:bold; font-size: 1.2em;
margin-bottom: 20px; text-align:center; padding-left:20px; padding-right:20px;border: 1px solid #888;
border-right: 1px solid #666;
border-bottom: 1px solid #666;
padding: 5px;
background-color: rgba(255,102,0,1.00)}
h3  {text-align: center; margin: 2em;}
#wrapper {margin:0; padding: 0;}
#login  {position: absolute; left:0; width:40%;
padding: 1em 0; }
#reg {position:absolute; left:40%; width:60%;
padding: 1em 0;}
#field {padding-bottom: .5em}
.menu   {margin-left:150px; padding-bottom: .5em; width:204px}
.errors {font-weight: bold; font-size:12px font-style:italic;
font-size:90%; color: red; margin-top:0; text-align:center}
-->
</style>
<body>
<form action="<?php $_SERVER['PHP_SELF']?>"method="POST">
<fieldset><legend>UPDATE INFORMATION</legend>

<?phpecho    "<table  style='width:20%; left:25%; position:absolute; font-weight:bold' cellspacing='28.5'>\n";
foreach($personal_change_array as $field=>$value)
{
echo "<tr><td>$value</td></tr>";
}
echo   "</table>";
echo   "<table  style='width:10%; left:25%; position:relative; font-weight:bold' cellspacing='15'>\n";
$connect   =   mysqli_connect($host,$user,$password,$database)
or die("Couldn't connect to database.");
$sql   =   "SELECT * FROM data WHERE loginName='{$_SESSION['logname']}'";
$result =  mysqli_query($connect,$sql)
or die ("Couldn't execute query.");
$row=  mysqli_fetch_assoc($result);
foreach($row as $field => $value)
{
if($field!="createDate")
{
if($field=="password")
{
$type='password';
}
else
{
$type='text';
}

echo "<tr><td><input ' type='$type' value=$value></input></td></tr>";

}
}
echo "</table>";
?>

<input type="submit" name="button"style='margin-left:40%; margin-bottom:.5em; margin-top:30px' value="Update" />

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

0

Решение

Имена кнопок не передаются, поэтому значение php $ _POST [‘submit’] не установлено. Как и в isset ($ _ POST [‘submit’]), значение равно false.

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

например, вы можете использовать

<form id="my_awesome_form" action="<?php $_SERVER['PHP_SELF']?>"method="POST">
</form>
<input id="submit_button" type="submit" name="button"style='margin-left:40%; margin-bottom:.5em; margin-top:30px' value="Update" />
<script>
var buttonVal = $('#submit_button').val();

var form = $('#my_awesome_form').serialize();
form.push({button: buttonVal});
form.find('select:first').change( function() {
$.ajax( {
type: "POST",
url: form.attr( 'action' ),
data: form.serialize(),
success: function( response ) {
console.log( response );
}
} );
} );
</script>

Теперь используйте вызов ajax для отправки формы и отправки buttonVal с данными на вызов ajax

0

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

Других решений пока нет …

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