我有多个隐藏的复选框,根据选择,会出现复选框。但是,当我implode
复选框时,它会返回多个逗号我正在考虑使用substr
和if
else
来删除基于问题选择的逗号数量。这是我的标记
<?php
if(isset($_POST['Submit'])) {
$QuestionUsed = implode(',', $_POST['QuestionUsed']);
$SolutionOffered = implode(',', $_POST['SolutionOffered']);
echo $QuestionUsed;
echo "<br>";
echo $SolutionOffered;
}
?>
<form action="testing.php" method="post">
<table class="table">
<tbody>
<tr>
<th>Port-Out Reason</th>
</tr>
<tr>
<td>
<select id="portoutselector" name="PortOutQuestions" class="btn-block">
<option value=""></option>
<option value="PortOut1">Demande de numéro de compte</option>
<option value="PortOut2">Intérêt pour offre de la compétition</option>
<option value="PortOut3">Demande d’annulation sans vouloir donner une raison</option>
<option value="PortOut4">Plainte par rapport au réseau Rogers</option>
<option value="PortOut5">Déménagement à l’extérieur du réseau Rogers</option>
<option value="PortOut6">Déménagement à l’extérieur du pays</option>
<option value="PortOut7">Volonté de renégocier une offre existante au dossier ou de recevoir une offre additionnelle</option>
<option value="PortOut8">Déverrouillage d’appareil</option>
</select>
</td>
</tr>
<tr>
<th>Questions utilisées?</th>
<tr>
<tr>
<td>
<div class="PortOut1 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="1" name="QuestionUsed[]">Pour quelles raisons désirez-vous cette information?</label>
<label class="checkbox"><input type="checkbox" value="2" name="QuestionUsed[]">Avez-vous besoin de cette information pour effectuer un paiement?</label>
<label class="checkbox"><input type="checkbox" value="3" name="QuestionUsed[]">Êtes-vous entrain vous inscrire à la facturation en ligne?</label>
<label class="checkbox"><input type="checkbox" value="4" name="QuestionUsed[]" id="otherbox01">Autres, spécifié:</label>
<input type="text" id="Other01" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut2 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="5" name="QuestionUsed[]">Quelles est l’offre que vous avez reçu d’un autre fournisseur?</label>
<label class="checkbox"><input type="checkbox" value="6" name="QuestionUsed[]">Quels sont les détails de l’offre qui vous intéresse?</label>
<label class="checkbox"><input type="checkbox" value="7" name="QuestionUsed[]">Quel est le compétiteur qui vous intéresse?</label>
<label class="checkbox"><input type="checkbox" value="8" name="QuestionUsed[]">Quels sont vos besoins?</label>
<label class="checkbox"><input type="checkbox" value="9" name="QuestionUsed[]">Quel est votre budget mensuel consacré à vos services sans fil?</label>
<label class="checkbox"><input type="checkbox" value="10" name="QuestionUsed[]" id="otherbox02">Autres, spécifié :</label>
<input type="text" id="Other02" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut3 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="11" name="QuestionUsed[]">Il y a-t-il une offre de la compétition qui vous intéresse ?</label>
<label class="checkbox"><input type="checkbox" value="12" name="QuestionUsed[]">Êtes-vous satisfait avec Rogers ? (oui/non) Pourquoi?</label>
<label class="checkbox"><input type="checkbox" value="13" name="QuestionUsed[]">Êtes-vous au courant de nos offres promotionnelles?</label>
<label class="checkbox"><input type="checkbox" value="14" name="QuestionUsed[]" id="otherbox03">Autres, spécifié :</label>
<input type="text" id="Other03" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut4 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="15" name="QuestionUsed[]">Vous expérimentez cet inconvénient depuis quand?</label>
<label class="checkbox"><input type="checkbox" value="16" name="QuestionUsed[]">Ce problème arrive partout ou dans un endroit en particulier?</label>
<label class="checkbox"><input type="checkbox" value="17" name="QuestionUsed[]">Avez-vous déjà discuté de cette situation avec le département technique?</label>
<label class="checkbox"><input type="checkbox" value="18" name="QuestionUsed[]" id="otherbox04">Autres, spécifié :</label>
<input type="text" id="Other04" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut5 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="19" name="QuestionUsed[]">Dans quelle région déménagez-vous?</label>
<label class="checkbox"><input type="checkbox" value="20" name="QuestionUsed[]">Pour combien de temps pensez-vous demeurer à cette adresse?</label>
<label class="checkbox"><input type="checkbox" value="21" name="QuestionUsed[]">Comptez-vous réutiliser ce téléphone dans le futur?</label>
<label class="checkbox"><input type="checkbox" value="22" name="QuestionUsed[]">Est-ce que vous comptez avoir les services d’un autre fournisseur pendant cette période?</label>
<label class="checkbox"><input type="checkbox" value="23" name="QuestionUsed[]" id="otherbox05">Autres, spécifié :</label>
<input type="text" id="Other05" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut6 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="24" name="QuestionUsed[]">Est-ce que le déménagement est pour une période limité (vacances, travail, etc.) ou pour une durée indéterminée?</label>
<label class="checkbox"><input type="checkbox" value="25" name="QuestionUsed[]">Considérez-vous revenir au pays dans le futur ?</label>
<label class="checkbox"><input type="checkbox" value="26" name="QuestionUsed[]">Est-ce que vous avez un membre de votre famille ou amis restant au pays qui pourrait utiliser votre appareil?</label>
<label class="checkbox"><input type="checkbox" value="27" name="QuestionUsed[]" id="otherbox06">Autres, spécifié :</label>
<input type="text" id="Other06" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut7 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="28" name="QuestionUsed[]">Qu’est-ce-qui vous fait douter de l’offre initiale?</label>
<label class="checkbox"><input type="checkbox" value="28" name="QuestionUsed[]">Quel aspect de l’offre ne vous satisfait pas?</label>
<label class="checkbox"><input type="checkbox" value="30" name="QuestionUsed[]">Il y a t- il une offre de la compétition qui vous intéresse?</label>
<label class="checkbox"><input type="checkbox" value="31" name="QuestionUsed[]" id="otherbox07">Autres, spécifié :</label>
<input type="text" id="Other07" style="display:none" name="QuestionUsed[]">
</div>
<div class="PortOut8 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="32" name="QuestionUsed[]">Pour quelles raisons désirez-vous faire déverrouiller votre appareil?</label>
<label class="checkbox"><input type="checkbox" value="33" name="QuestionUsed[]">Êtes-vous satisfait avec votre appareil?</label>
<label class="checkbox"><input type="checkbox" value="34" name="QuestionUsed[]">Êtes-vous au courant de nos nouvelles offres?</label>
<label class="checkbox"><input type="checkbox" value="35" name="QuestionUsed[]" id="otherbox08">Autres, spécifié :</label>
<input type="text" id="Other08" style="display:none" name="QuestionUsed[]">
</div>
</td>
</tr>
<tr>
<th>Solutions offertes?</th>
</tr>
<tr>
<td>
<div class="PortOut1 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="1" name="SolutionOffered[]">Réviser l’utilisation sans fil des 3 derniers mois et offrir la meilleure solution possible.</label>
<label class="checkbox"><input type="checkbox" value="2" name="SolutionOffered[]">Offert au client de l’inscrire à la facturation en ligne.</label>
<label class="checkbox"><input type="checkbox" value="3" name="SolutionOffered[]" id="otherbox11">Autres, spécifié :</label>
<input type="text" id="Other11" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut2 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="3" name="SolutionOffered[]">Réviser l'utilisation des 3 derniers mois et lui offrir une offre rétention par rapport à ses besoins.</label>
<label class="checkbox"><input type="checkbox" value="4" name="SolutionOffered[]">Forfait Québec à 70$</label>
<label class="checkbox"><input type="checkbox" value="5" name="SolutionOffered[]">Offrir des escomptes sur des plans sur le marché</label>
<label class="checkbox"><input type="checkbox" value="6" name="SolutionOffered[]">Revendre son plan actuel (client possédant plan rétention ou plan promotionnel</label>
<label class="checkbox"><input type="checkbox" value="7" name="SolutionOffered[]" id="otherbox12">Autres, spécifié :</label>
<input type="text" id="Other12" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut3 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="8" name="SolutionOffered[]">Offrir au client de réviser son forfait.</label>
<label class="checkbox"><input type="checkbox" value="9" name="SolutionOffered[]">Offrir un offre de bonne foi (si demandé)</label>
<label class="checkbox"><input type="checkbox" value="10" name="SolutionOffered[]">Offrir une offre de rétention selon ses besoins</label>
<label class="checkbox"><input type="checkbox" value="11" name="SolutionOffered[]" id="otherbox13">Autres, spécifié :</label>
<input type="text" id="Other13" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut4 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="12" name="SolutionOffered[]">Faire une résolution de problème avec le client.</label>
<label class="checkbox"><input type="checkbox" value="13" name="SolutionOffered[]">Offrir un OOW si nécessaire.</label>
<label class="checkbox"><input type="checkbox" value="14" name="SolutionOffered[]">Offrir un rehaussement d'appareil.</label>
<label class="checkbox"><input type="checkbox" value="15" name="SolutionOffered[]" id="otherbox14">Autres, spécifié :</label>
<input type="text" id="Other14" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut5 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="16" name="SolutionOffered[]">Recommandez un transfert de responsabilité.</label>
<label class="checkbox"><input type="checkbox" value="17" name="SolutionOffered[]">Offrir au client une suspension temporaire si nécessaire/offre de dernier recours.</label>
<label class="checkbox"><input type="checkbox" value="18" name="SolutionOffered[]" id="otherbox15">Autres, spécifié :</label>
<input type="text" id="Other15" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut6 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="19" name="SolutionOffered[]">Offrir au client une suspension temporaire au dossier.</label>
<label class="checkbox"><input type="checkbox" value="20" name="SolutionOffered[]">Offrir au client 50% de rabais pour 6 mois ou 12 mois selon les cas</label>
<label class="checkbox"><input type="checkbox" value="21" name="SolutionOffered[]">Offrir au client la meilleure offre possible selon son utilisation au cours des 3 dernier mois</label>
<label class="checkbox"><input type="checkbox" value="22" name="SolutionOffered[]" id="otherbox16">Autres, spécifié :</label>
<input type="text" id="Other16" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut7 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="23" name="SolutionOffered[]">Repositionner et revendre la valeur $$ de l’offre déjà présente au dossier.</label>
<label class="checkbox"><input type="checkbox" value="24" name="SolutionOffered[]">Faire une nouvelle offre lorsque les besoins du client sont différents du plan déjà offert.</label>
<label class="checkbox"><input type="checkbox" value="25" name="SolutionOffered[]">Offrir la migration vers Fido lorsque les conditions requises sont remplies.</label>
<label class="checkbox"><input type="checkbox" value="26" name="SolutionOffered[]" id="otherbox17">Autres, spécifié :</label>
<input type="text" id="Other17" style="display:none" name="SolutionOffered[]">
</div>
<div class="PortOut8 unselected" style="display:none">
<label class="checkbox"><input type="checkbox" value="27" name="SolutionOffered[]">Offrez au client un nouvel appareil (si la situation le demande).</label>
<label class="checkbox"><input type="checkbox" value="28" name="SolutionOffered[]">Offrir offre au client la meilleure possible selon son utilisation au cours des 3 dernier mois</label>
<label class="checkbox"><input type="checkbox" value="29" name="SolutionOffered[]" id="otherbox18">Autres, spécifié :</label>
<input type="text" id="Other18" style="display:none" name="SolutionOffered[]">
</div>
</td>
</tr>
</tbody>
</table>
<input type="submit" name="Submit" value="Submit">
</form>
目前的结果:
,5,6,,,,,,,
,3,4,,,,,,,
预期结果:
5,6
3,4
答案 0 :(得分:3)
如果您通过适当的检查执行此操作会怎么样,例如:
$QuestionUsed = isset($_POST['QuestionUsed']) && is_array($_POST['QuestionUsed']) ? $_POST['QuestionUsed'] : array();
$SolutionOffered = isset($_POST['SolutionOffered']) && is_array($_POST['SolutionOffered']) ? $_POST['SolutionOffered'] : array();
foreach ($QuestionUsed as $index => $question) {
if (empty($question)) {
unset($QuestionUsed[$index]);
}
}
foreach ($SolutionOffered as $index => $solution) {
if (empty($solution)) {
unset($SolutionOffered[$index]);
}
}
$QuestionUsed = implode(',', $QuestionUsed);
$SolutionOffered = implode(',', $SolutionOffered);
用一个小函数重构将是:
function getCommaSeparatedStringFromArray(array $data = array()) {
foreach ($data as $key => $value) {
if (empty($value)) {
unset($data[$key]);
}
}
return implode(',', $data);
}
$QuestionUsed = isset($_POST['QuestionUsed']) && is_array($_POST['QuestionUsed']) ? $_POST['QuestionUsed'] : array();
$SolutionOffered = isset($_POST['SolutionOffered']) && is_array($_POST['SolutionOffered']) ? $_POST['SolutionOffered'] : array();
$QuestionUsed = getCommaSeparatedStringFromArray($QuestionUsed);
$SolutionOffered = getCommaSeparatedStringFromArray($SolutionOffered);
答案 1 :(得分:0)
您可以使用trim来切断额外的逗号,例如:
$QuestionUsed = trim(implode(',', $_POST['QuestionUsed']),',');