Comment diviser les champs de saisie HTML à l'aide de plusieurs variables PHP, implémentées via des sauts de ligne
P粉647449444
P粉647449444 2023-08-16 13:06:13
0
1
613
<p>Je crée donc un outil pour ceux qui souhaitent copier/coller des lignes de texte depuis Excel dans une zone de texte. Le but est de faire de chaque ligne une variable distincte. Si possible, j'aimerais pouvoir compter le nombre de lignes et les convertir en tableau. </p> <pre class="brush:php;toolbar:false;"><form method="post" action="/TestThisOneOut2.php"> <label for="CompetitorPartNumber">Numéro de pièce du concurrent : </label><br> <textarea rows="4" id="CompetitorPartNumber" name="CompetitorPartNumber1" cols="50" name="comment"> Test</textarea><br> <input type='submit' value='Télécharger maintenant' class="SubmitButton"></pre> <p>Par exemple, un utilisateur peut saisir ce qui suit dans la zone de texte : </p> <pre class="brush:php;toolbar:false;">X5044MLGSP4 19h985DSA PO94ASDS</pré> <p>Je n'ai aucun moyen de savoir s'ils souhaitent saisir 1 ligne, 3 lignes ou 300 lignes de code produit, mais je souhaite créer une zone de texte qui se divise automatiquement. Le but est d'avoir une zone de texte dans laquelle l'utilisateur peut saisir des informations. </p> <p>Dans l'exemple ci-dessus, j'essaie de trouver un moyen d'identifier par programme qu'il y a 3 lignes et qu'elles nécessitent donc 3 variables. J'aimerais pouvoir le faire via un retour chariot ou par un autre moyen. </p> <p>Ensuite, pour l'exemple ci-dessus : je souhaite qu'ils soient convertis en tableau, par exemple : </p> <pre class="brush:php;toolbar:false;">$CompetitorPartNumber[0] = $_POST['CompetitorPartNumber1']; $CompetitorPartNumber[1] = $_POST['CompetitorPartNumber2']; $CompetitorPartNumber[2] = $_POST['CompetitorPartNumber3'];</pre> <p>Je peux ensuite utiliser ces données pour effectuer une requête dans la base de données et renvoyer les données. Merci pour votre aide.</p> <p>J'ai essayé ce qui suit : </p> <pre class="brush:php;toolbar:false;"><form method="post" action="/TestThisOneOut2.php"> <label for="CompetitorPartNumber">Numéro de pièce du concurrent : </label><br> <textarea rows="4" id="CompetitorPartNumber" name="CompetitorPartNumber" cols="50" name="comment"> Test</textarea><br> <input type='submit' value='Télécharger maintenant' class="SubmitButton"> </form></pre> <p>Il envoie les données publiées au script suivant : </p> <pre class="brush:php;toolbar:false;"><?php $CompetitorPartNumber = $_POST['CompetitorPartNumber']; echo "<h1>".$CompetitorPartNumber."</h1>"; ?>≪/pré> <p>Donc, le problème que j'ai est que lorsque j'affiche les résultats, ils apparaissent sur différentes lignes avec des espaces au lieu d'éléments. C'est très bien, à moins que l'utilisateur n'entre accidentellement dans un espace. Je pensais pouvoir déterminer le nombre de champs dans le tableau en comptant les espaces. Divisez ensuite la variable par un caractère espace. Cependant, l'utilisateur peut saisir des espaces à la fin, donc je ne pense pas que ce soit une bonne stratégie car je pourrais obtenir des résultats vides. J'aimerais pouvoir demander si quelqu'un d'autre a un exemple de code sur la façon de résoudre ce problème. </p>
P粉647449444
P粉647449444

répondre à tous(1)
P粉530519234

Formulaire

<?php
$CompetitorPartNumbers = $_POST['CompetitorPartNumbers'] ?? 'Test';
    
?>
<form method="post" action="">
  <label for="CompetitorPartNumber">竞争对手零件编号:</label><br>
  <textarea rows="4" id="CompetitorPartNumber" name="CompetitorPartNumbers" cols="50" name="comment">
<?= $CompetitorPartNumbers ?></textarea><br>
  <input type='submit' value='立即下载' class="SubmitButton">

Script cible

<?php
$CompetitorPartNumbers = $_POST['CompetitorPartNumbers'] ?? 'Test';
echo "<h1>纯文本输入</h1>";
echo "<pre>".$CompetitorPartNumbers."</pre>";
    
// 按换行符分割
$CompetitorPartNumbersEx = explode("\n", $CompetitorPartNumbers);
// 按回车换行符分割
$CompetitorPartNumbersEx = explode("\n\r", $CompetitorPartNumbers);
// 按当前平台的正确换行符分割
$CompetitorPartNumbersEx = explode(PHP_EOL, $CompetitorPartNumbers);
?>
<h1><code>explode()</code> 将值按行分割</h1>
<pre><?= print_r($CompetitorPartNumbersEx, true) ?></pre>
<h2>计算行数</h2>
<samp><?='count = '.count($CompetitorPartNumbersEx) ?></samp>

Le résultat est similaire à :

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal