Опитвах се да разбера този малък проблем и съм готов да си скубя косата хаха. Аз съм повече дизайнер, отколкото програмист, но създадох формуляр за изпращане на php за моето училище. Ето тестовата форма, върху която работя:
http://www.inrf.uci.edu/php-form-test/
Това, което се опитвам да направя, е, когато човек избере външен потребител, от него трябва да се изисква да попълни името на компанията си. Когато някой избере Вътрешен потребител, от него се изисква да попълни името на групата/PI. Е, това не работи. Когато избера Вътрешен, трябва да се изисква само име на група/PI, а не име на фирма. Ще се радвам на всяка помощ. Благодаря ти!
Ето моя PHP код тук:
// internal selected (group pi)
if ($userType == 'internal') {
$internalChecked = ' checked="checked" ';
} else {
if(trim($_POST['grpPI']) === '') {
$grpPIError = '<span class="error">Please enter your group or PI name.</span>';
$hasError = true;
} else {
$grpPI = trim($_POST['grpPI']);
}
}
}
// external selected (company name)
if ($userType == 'external') {
$externalChecked = ' checked="checked" ';
} else {
if(trim($_POST['companyName']) === '') {
$companyNameError = '<span class="error">Please enter your company name.</span>';
$hasError = true;
} else {
$companyName = trim($_POST['companyName']);
}
}
и HTML тук:
<table class="usertype" id="usertype">
<tr>
<td colspan="2">
<input type="radio" name="userType" value="external" <?php echo $externalChecked; ?>>External
<select name="externalSelect" size="1">
<option selected="selected">Select</option>
<option>Academic</option>
<option>Non-Profit</option>
<option>Commercial</option>
</select><?php if($externalError != '') { ?><span class="error"><?=$externalError;?></span><?php } ?></td>
</tr>
<tr>
<td colspan="2"><label for="companyName">Company Name:</label>
<input type="text" size="40" name="companyName" id="companyName" value="<?php if(isset($_POST['companyName'])) echo $_POST['companyName'];?>" />
<?php if($companyNameError != '') { ?>
<span class="error"><?=$companyNameError;?></span><?php } ?></td>
</tr>
<tr>
<td colspan="3"><input type="radio" name="userType" value="internal" <?php echo $internalChecked; ?>>Internal <input title="Enter Account String. Required for Internal Users." type="text" size="30" name="ucfund" value="<?php if(isset($_POST['ucfund'])) echo $_POST['ucfund'];?>" placeholder="KFS or Account (eg. xxxxxxx)" /><?php if($ucfundError != '') { ?><span class="error"><?=$ucfundError;?></span><?php } ?> - <input title="Enter Fund String. Required for Internal Users." type="text" size="25" name="ucfund2" value="<?php if(isset($_POST['ucfund2'])) echo $_POST['ucfund2'];?>" placeholder="Fund (eg. xxxxx)" /><?php if($ucfund2Error != '') { ?><span class="error"><?=$ucfund2Error;?></span><?php } ?><br /><span class="small">(Please enter KFS number or Accound Fund)</span>
</td>
</tr>
<tr>
<td colspan="3">Optional <input type="text" size="30" name="sub" value="<?php if(isset($_POST['sub'])) echo $_POST['sub'];?>" placeholder="Sub" /><?php if($subError != '') { ?><span class="error"><?=$subError;?></span><?php } ?> - <input type="text" size="25" name="proj" value="<?php if(isset($_POST['proj'])) echo $_POST['proj'];?>" placeholder="Project" /><?php if($projError != '') { ?><span class="error"><?=$projError;?></span><?php } ?>
</td>
</tr>
<tr>
<td colspan="3"><label for="grpPI">Group / PI:</label>
<input type="text" size="40" name="grpPI" id="grpPI" value="<?php if(isset($_POST['grpPI'])) echo $_POST['grpPI'];?>" />
<?php if($grpPIError != '') { ?>
<span class="error"><?=$grpPIError;?></span><?php } ?></td>
</tr>
</table>
$userType
? Правили ли сте някакво отстраняване на грешки, за да определите къде кодът започва да се държи различно от очакваното? - person Mike Brant   schedule 27.01.2015var_dump($userType);
очевидно не съществува на сървъра. Трябва да го изпратите и да го получите чрез$_POST
- person Abel   schedule 27.01.2015