drowdown列表值中的php未定义索引

drowdown列表值中的php未定义索引,php,html,forms,post,Php,Html,Forms,Post,伙计们! 对php解析有一些问题。 代码如下: <form method="POST" action=""> <input type="text" name="transactions"> <select name= "cat" class="cs-select cs-skin-border"> <option value="" disabled selected>Select category</option

伙计们! 对php解析有一些问题。 代码如下:

<form method="POST" action="">
<input type="text" name="transactions">
<select name= "cat" class="cs-select cs-skin-border">
                <option value="" disabled selected>Select category</option>
                <option value="Aviabileti">Aviatickets</option>
                <option value="Oteli">Hotel</option>
                <option value="Krasota">Beauty</option>
                <option value="Odezhda_obyv">Clothes</option>
                <option value="Razvlecheniya">Amusement</option>
                <option value="Restorani">Restaurant</option>
                <option value="Telekom">Telecom</option>
                <option value="Toplivo">Fuel</option>
                <option value="ZhD_bileti">Railway tickets</option>
                <option value="Tyragenstva">Travel agencies</option>
                <option value="Dom_remont">House and repair</option>
                <option value="Foto_video">Foto and video</option>
</select>   
<input name="pointsinput" type="text">
<input type="text" name="destination">
<input type="text" name="cost">
 <label>
 <input type="Submit" name="submit" style="visibility:hidden"><span><
 img name = "gobut" src="go.png"></span>
 </label>
</form>

<?php
if (isset($_POST['submit'])) 
{ 
$trans=$_POST['transactions'];
$cat=$_POST['cat'];
$points = $_POST['pointsinput'];
$destination = $_POST['destination'];
$cost=$_POST['cost'];
echo $cat;
echo $destination;
echo $points;
echo $cost;
echo $trans;
}
?>
有一个php错误:未定义索引cat in…,但所有其他变量都显示正确。 如果我首先设置下拉列表,然后设置所有输入表单,它就可以正常工作
怎么了?

删除此行的禁用属性。正在禁用selectbox时。 所以,替换

 <option value="" disabled selected>Select category</option>

更改此行:-

<option value="" disabled selected>Select category</option>

要禁用,请使用以下选项:-

<select name="cat" class="cs-select cs-skin-border" disabled>
请尝试以下代码:-

<form method="POST" action="">
<input type="text" name="transactions">
<select name="cat" class="cs-select cs-skin-border">
                <option value="">Select category</option>
                <option value="Aviabileti">Aviatickets</option>
                <option value="Oteli">Hotel</option>
                <option value="Krasota">Beauty</option>
                <option value="Odezhda_obyv">Clothes</option>
                <option value="Razvlecheniya">Amusement</option>
                <option value="Restorani">Restaurant</option>
                <option value="Telekom">Telecom</option>
                <option value="Toplivo">Fuel</option>
                <option value="ZhD_bileti">Railway tickets</option>
                <option value="Tyragenstva">Travel agencies</option>
                <option value="Dom_remont">House and repair</option>
                <option value="Foto_video">Foto and video</option>
</select>   
<input name="pointsinput" type="text">
<input type="text" name="destination">
<input type="text" name="cost">
 <label>
 <input type="Submit" name="submit" style="visibility:hidden"><span>
 <img name = "gobut" src="go.png"></span>
 </label>
</form>

<?php
if (isset($_POST['submit'])) 
{ 
//print_r($_POST);//die;
$trans=$_POST['transactions'];
if(!empty($_POST['cat'])){
$cat=$_POST['cat'];
}else{
 $cat="category not select";       
}
$points = $_POST['pointsinput'];
$destination = $_POST['destination'];
$cost=$_POST['cost'];
echo $cat."<br>";
echo $destination."<br>";
echo $points."<br>";
echo $cost."<br>";
echo $trans."<br>";
}
?>

我无法复制这个。您确实有一个更新类型:

<form method="POST" action="">
<input type="text" name="transactions">
<select name="cat" id="cat" class="cs-select cs-skin-border">
                <option value="" disabled selected>Select category</option>
                <option value="Aviabileti">Aviatickets</option>
                <option value="Oteli">Hotel</option>
                <option value="Krasota">Beauty</option>
                <option value="Odezhda_obyv">Clothes</option>
                <option value="Razvlecheniya">Amusement</option>
                <option value="Restorani">Restaurant</option>
                <option value="Telekom">Telecom</option>
                <option value="Toplivo">Fuel</option>
                <option value="ZhD_bileti">Railway tickets</option>
                <option value="Tyragenstva">Travel agencies</option>
                <option value="Dom_remont">House and repair</option>
                <option value="Foto_video">Foto and video</option>
</select>   
<input name="pointsinput" type="text">
<input type="text" name="destination">
<input type="text" name="cost">
 <label>
 <input type="Submit" name="submit" style="visibility:hidden"><span onclick="return checkCat();">
 <img name = "gobut" src="go.png"></span>
 </label>
</form>

<script>
function checkCat() {
var oS = document.getElementById("cat");
if (oS.options[oS.selectedIndex].value == "") {
    alert('CAT EMPTY PLEASE SELECT');
    return false;
}
}
</script>
<?php
if (isset($_POST['submit'])) 
{ 
$trans=$_POST['transactions'];
$cat=$_POST['cat'];
$points = $_POST['pointsinput'];
$destination = $_POST['destination'];
$cost=$_POST['cost'];
echo $cat;
echo $destination;
echo $points;
echo $cost;
echo $trans;
}
?>

这将解决您的问题

您的代码工作正常。我测试过了

<form method="POST" action="">
<input type="text" name="transactions">

<input name="pointsinput" type="text">
<input type="text" name="destination">
<input type="text" name="cost">
 <select name= "cat" class="cs-select cs-skin-border">
                <option value="" disabled selected>Select category</option>
                <option value="Aviabileti">Aviatickets</option>
                <option value="Oteli">Hotel</option>
                <option value="Krasota">Beauty</option>
                <option value="Odezhda_obyv">Clothes</option>
                <option value="Razvlecheniya">Amusement</option>
                <option value="Restorani">Restaurant</option>
                <option value="Telekom">Telecom</option>
                <option value="Toplivo">Fuel</option>
                <option value="ZhD_bileti">Railway tickets</option>
                <option value="Tyragenstva">Travel agencies</option>
                <option value="Dom_remont">House and repair</option>
                <option value="Foto_video">Foto and video</option>
</select>  
 <label>
 <input type="Submit" name="submit" ><span>
 <img name = "gobut" src="go.png"></span>
 </label>

</form>

<?php
if (isset($_POST['submit'])) 
{ 
$trans=$_POST['transactions'];
$cat=$_POST['cat'];
$points = $_POST['pointsinput'];
$destination = $_POST['destination'];
$cost=$_POST['cost'];
echo $cat;
echo $destination;
echo $points;
echo $cost;
}
?>

echo$cat是否显示某些内容?但我在html中选择了它page@Erlaunis他在分配给$cat的行上得到了错误。@Barmar好的,我没有看到错误assignation@Erlaunis你看到错误信息了吗?它说的是未定义的索引,不是未定义的变量。为什么?在下拉菜单中有这样的提示选项是正常的。也许他应该删除禁用的属性。@Danielgurin请检查我更新的答案,并让我知道您的确切要求。@Sandepsure我只需要将输入表单中的所有值放入并选择表单到php变量,以便进一步使用it@sandeepsure你注意到了吗,我说过的位置?@sandepsure当选择表单是所有输入表单中的第一个时,它会工作!空的$_POST['cat']{$cat=$_POST['cat']}否则{$cat=category disabled;}试试这个@danielgurinahutos,我已经禁用了category stringrahutos,我在网页上选择了它,但它没有被选中,这是个问题愤怒,我在我的html页面上选择了它,但它不起作用如果你想要一个肮脏的解决方案,你可以把它放在上面,如果这解决了你的问题,请勾选正确答案。
<form method="POST" action="">
<input type="text" name="transactions">
<select name="cat" id="cat" class="cs-select cs-skin-border">
                <option value="" disabled selected>Select category</option>
                <option value="Aviabileti">Aviatickets</option>
                <option value="Oteli">Hotel</option>
                <option value="Krasota">Beauty</option>
                <option value="Odezhda_obyv">Clothes</option>
                <option value="Razvlecheniya">Amusement</option>
                <option value="Restorani">Restaurant</option>
                <option value="Telekom">Telecom</option>
                <option value="Toplivo">Fuel</option>
                <option value="ZhD_bileti">Railway tickets</option>
                <option value="Tyragenstva">Travel agencies</option>
                <option value="Dom_remont">House and repair</option>
                <option value="Foto_video">Foto and video</option>
</select>   
<input name="pointsinput" type="text">
<input type="text" name="destination">
<input type="text" name="cost">
 <label>
 <input type="Submit" name="submit" style="visibility:hidden"><span onclick="return checkCat();">
 <img name = "gobut" src="go.png"></span>
 </label>
</form>

<script>
function checkCat() {
var oS = document.getElementById("cat");
if (oS.options[oS.selectedIndex].value == "") {
    alert('CAT EMPTY PLEASE SELECT');
    return false;
}
}
</script>
<?php
if (isset($_POST['submit'])) 
{ 
$trans=$_POST['transactions'];
$cat=$_POST['cat'];
$points = $_POST['pointsinput'];
$destination = $_POST['destination'];
$cost=$_POST['cost'];
echo $cat;
echo $destination;
echo $points;
echo $cost;
echo $trans;
}
?>
<form method="POST" action="">
<input type="text" name="transactions">

<input name="pointsinput" type="text">
<input type="text" name="destination">
<input type="text" name="cost">
 <select name= "cat" class="cs-select cs-skin-border">
                <option value="" disabled selected>Select category</option>
                <option value="Aviabileti">Aviatickets</option>
                <option value="Oteli">Hotel</option>
                <option value="Krasota">Beauty</option>
                <option value="Odezhda_obyv">Clothes</option>
                <option value="Razvlecheniya">Amusement</option>
                <option value="Restorani">Restaurant</option>
                <option value="Telekom">Telecom</option>
                <option value="Toplivo">Fuel</option>
                <option value="ZhD_bileti">Railway tickets</option>
                <option value="Tyragenstva">Travel agencies</option>
                <option value="Dom_remont">House and repair</option>
                <option value="Foto_video">Foto and video</option>
</select>  
 <label>
 <input type="Submit" name="submit" ><span>
 <img name = "gobut" src="go.png"></span>
 </label>

</form>

<?php
if (isset($_POST['submit'])) 
{ 
$trans=$_POST['transactions'];
$cat=$_POST['cat'];
$points = $_POST['pointsinput'];
$destination = $_POST['destination'];
$cost=$_POST['cost'];
echo $cat;
echo $destination;
echo $points;
echo $cost;
}
?>