2013-11-23 2 views
0

В моей форме я пытаюсь передать значение, проверенное радио, на следующую страницу (которая является страницей FPDF) У меня есть 4 варианта: ежегодный отпуск, отпуск по болезни, бизнес-отпуск, & также другие с текстовым полем.Передача радиокнопки

Однако я попробовал много «если», а также «случаи переключатель» я получаю либо только элемент со значением «1» или иначе «Undefined индекс: рад в D: \ XAMPP \ HTDOCS \ Приложение \ generate_report.php в строке 13 '

некоторые, где я ошибаюсь, может кто-нибудь мне помочь. Мой код ниже.

HTML форма:

<form id="formmain" method="post" action="generate_report.php" onsubmit="return_validate()"> 

<script type="text/javascript"> 

function selectRadio(n){ 

document.forms["form4"]["r1"][n].checked=true 

} 

</script> 


    <table width="689"> 
    <tr> 
     <td width="500d"> 
     <input type="radio" name="rad" value="0" /> 
     <label>Business Trip</label> 
     <input type="radio" name="rad" value="1"/><label>Annual Leave</label> 
     <input type="radio" name="rad" value="2"/><label>Sick Leave</label> 
     <input type="radio" name="rad" value="3"/><label>Others</label>&nbsp;<input type="text" name="others" size="25" onclick="selectRadio(3)" />​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 
     </td> 
    </tr> 
    </table> 
    //.... 


//below submit button is end of the html page: 
<input type="submit" name="submit" value="send" /> 
</form> 

Генерация формы PDF:

$radio = $_POST['rad']; // I am storing variable 
    if($radio = 0) { 
$type = 'Business Leave'; 
    }elseif ($radio = 1) { 
    $type = 'Annual Leave'; 
    }elseif ($radio = 2) { 
    $type = 'Sick Leave'; 
    } else { $type = $_POST['others']; } 
//echo 
$pdf->Cell(98,10, 'Reason | ' .$type , 1, 0, 'C', $fill); 

ответ

0

Вы всегда должны проверить, установлены ли входы или какое-либо введенное значение. Если нет значения, тогда он выдает неопределенную ошибку индекса. Кроме того, вы должны заменить = s на == в ваших предложениях if. Итак:

PHP:

$radio = $_POST['rad']; // I am storing variable 

if (isset($radio)) { // checks if radio is set 

if($radio == 0) { 
    $type = 'Business Leave'; 
}elseif ($radio == 1) { 
    $type = 'Annual Leave'; 
}elseif ($radio == 2) { 
    $type = 'Sick Leave'; 
} else { 
    if (isset($_POST['others'])) { // cheks if input text is set 
    $type = $_POST['others']; 
    } 
    else { 
    echo 'Error'; 
    } 
} 
//echo 
$pdf->Cell(98,10, 'Reason | ' .$type , 1, 0, 'C', $fill); 
} 
else { 
echo 'Error'; 
} 

Теперь он должен работать.

+0

Я попробовал, он дал мне ошибку неожиданного конца файла и показал ошибку при закрытии php-тега. Интересно, не потому ли, что я сделал ошибки? {' – sajeesh

+0

Perfect. Я прошел через это и нашел отличную работу и получил именно то, что хотел. Err I made was pdf-> cell был за пределами 'if' – sajeesh

+0

Рад это слышать :) – aksu

1
if($radio = 0) 

и

elseif ($radio = 1) 

и все остальные elseifs должны быть == 1, с двумя '='!

+0

Это дает мне пустое значение. – sajeesh

+0

Это действительно помогло. – sajeesh

1

Дополнительное разъяснение по ОП. Если вы не используете ==, то вы устанавливаете значение, а не проверяете его. Кроме того, существуют уровни проверки. Использование double equals (==) эффективно утверждает, что «равно», тогда как использование тройных равных (===) похоже на то, что «абсолютно равно». Как правило, оператор == будет делать все, что вам нужно, но иногда при работе с типами данных или определенными значениями, которые могут вам понадобиться ===. Это в основном FYI, поскольку OP имеет действующее решение.

Смежные вопросы