PHP форма проверки с помощью JavaScript - PullRequest
0 голосов
/ 06 октября 2011

Я был на этом весь день.Сначала я попытался проверить свою форму в php, но в конце концов сдался.Сейчас я пытаюсь проверить форму с помощью JavaScript.Это работает, но так как я совсем не знаю JavaScript и имею ограниченные знания PHP, мне действительно нужна помощь, пожалуйста.Это тест, и я хочу подтвердить, что на каждый вопрос ответили.Имя поля в форме = переменная / массив php, не может заставить это работать в javascirpt

var x = document.forms ["myForm"] ["question _ {$ q_nr}"] .value;

.Если я просто использую имя текстового поля, оно отлично работает.

Форма

<html>
<head>
<?php
session_start();
?>
<script type="text/javascript" src="counter.js"></script>
<script language="JavaScript">
<!--
function validateForm()
{
var x=document.forms["myForm"]["question_{$q_nr}"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
}
//-->
</script>
</head>

<body>
<?php
if ($_SESSION['auth']) {
$tid = $_GET['tid'];
echo "<span id='counter'></span>";
$sql1="SELECT * FROM ex_question WHERE test_name = '$tid' ORDER BY q_nr";
$result1=mysql_query($sql1);

echo "<form name='myForm' action='http://localhost/index.php?option=com_content&view=article&id=51' onsubmit='return validateForm()' method='post'>";
while($row1 = mysql_fetch_array($result1))
{
    $q_nr=$row1['q_nr'];
    $q_type=$row1['q_type'];
    $question=$row1['question'];
    $option1=$row1['option1'];
    $option2=$row1['option2'];

    echo "<P><strong>$q_nr $question</strong><BR>";
    echo "<img src='images/tests/$pic'>";
    echo "<BR>";
    echo "<BR>";
    echo "</p>";
if ($q_type != 'mr') {
if($option1!="") {
echo "<input type='radio' name='question_{$q_nr}' value='A'>$option1<BR>";
} else {
echo ''; }
if($option2!="") {
echo "<input type='radio' name='question_{$q_nr}' value='B'>$option2<BR>";
} else {
echo ''; }
} else { // else if not <> mr
if($option1!="") {
echo "<input type='checkbox' name='question_{$q_nr}[]' value='A'>$option1<BR>";
} else {
echo ''; } 
if($option2!="") {
echo "<input type='checkbox' name='question_{$q_nr}[]' value='B'>$option2<BR>";
} else {
echo ''; } 
} //if q_type <> mr
} //while row1
echo "First name: <input type='text' name='fname'>";
echo "<input type='submit' value='Submit'>";
echo "</form>";
} //else if now > testend
} //if ses auth
?>

Ответы [ 3 ]

1 голос
/ 08 октября 2012

почему вы думаете, что так сложно?

просто используйте уникальные идентификаторы для каждой метки, поля ввода и т. Д. И проверьте сохраненный innerHTML или значение; а также вы можете изменить значения в любое время;

Кстати, ваш код грязный;

напишите свой код так:

зона 1: все js идут сюда

зона 2: все html идет сюда

зона 1:

<script language="text/JavaScript">
//alljs code here

function validate()
{

if( document.getElementById('unique_2').value == null ) document.getElementById('unique_3').innerHTML = 'error1';

if(document.getElementById('unique_4').value == null ) document.getElementById('unique_6').innerHTML = 'error 2';

}

</script>

zone 2:

<form onsubmit="validate()">

all html label and fields go here, like:

<label id="unique_1">label text</label>
<input type="text" id="unique_2" value="" />
<label id="unique_3"></label> this is for the error message

<label id="unique_4">label text</label>
<input type="text" id="unique_5" value="" />
<label id="unique_6"></label> this is for the error message

</form>
0 голосов
/ 06 октября 2011

Это просто Проверка JQuery .

Я думаю, что вы должны иметь оба подтверждения, если вы хотите получить ...

p.s. Просто добавьте 'required' в класс ввода, если вы хотите быть обязательным ...

0 голосов
/ 06 октября 2011

Ну, с одной стороны, проверка на стороне сервера - это путь.

Если вы просто подтвердите на стороне клиента, он может быть обработан с ( много )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...