So teilen Sie HTML-Eingabefelder mithilfe mehrerer PHP-Variablen auf, implementiert durch Zeilenumbrüche
P粉647449444
P粉647449444 2023-08-16 13:06:13
0
1
642
<p>Also erstelle ich ein Tool für diejenigen, die Textzeilen aus Excel in ein Textfeld kopieren/einfügen möchten. Das Ziel besteht darin, jede Zeile zu einer separaten Variablen zu machen. Wenn möglich, möchte ich in der Lage sein, die Anzahl der Zeilen zu zählen und sie in ein Array umzuwandeln. </p> <pre class="brush:php;toolbar:false;"><form method="post" action="/TestThisOneOut2.php"> <label for="CompetitorPartNumber">Teilenummer des Mitbewerbers: </label><br> <textarea rows="4" id="CompetitorPartNumber" name="CompetitorPartNumber1" cols="50" name="comment"> Test</textarea><br> <input type='submit' value='Jetzt herunterladen' class="SubmitButton"></pre> <p>Ein Benutzer könnte beispielsweise Folgendes in das Textfeld eingeben: </p> <pre class="brush:php;toolbar:false;">X5044MLGSP4 7PM985DSA PO94ASDS</pre> <p>Ich weiß nicht, ob sie 1 Zeile, 3 Zeilen oder 300 Zeilen Produktcode eingeben möchten, aber ich möchte ein Textfeld erstellen, das sich automatisch teilt. Das Ziel besteht darin, ein Textfeld zu haben, in das der Benutzer Informationen eingeben kann. </p> <p>Im obigen Beispiel versuche ich eine Möglichkeit zu finden, programmgesteuert zu erkennen, dass es drei Zeilen gibt und daher drei Variablen erforderlich sind. Ich würde es gerne per Wagenrücklauf oder auf andere Weise tun können. </p> <p>Dann für das obige Beispiel: Ich möchte, dass sie in ein Array konvertiert werden, zum Beispiel: </p> <pre class="brush:php;toolbar:false;">$CompetitorPartNumber[0] = $_POST['CompetitorPartNumber1']; $CompetitorPartNumber[1] = $_POST['CompetitorPartNumber2']; $CompetitorPartNumber[2] = $_POST['CompetitorPartNumber3'];</pre> <p>Ich kann diese Daten dann verwenden, um eine Datenbankabfrage durchzuführen und die Daten zurückzugeben. Ich danke Ihnen für Ihre Hilfe.</p> <p>Ich habe Folgendes versucht: </p> <pre class="brush:php;toolbar:false;"><form method="post" action="/TestThisOneOut2.php"> <label for="CompetitorPartNumber">Teilenummer des Mitbewerbers: </label><br> <textarea rows="4" id="CompetitorPartNumber" name="CompetitorPartNumber" cols="50" name="comment"> Test</textarea><br> <input type='submit' value='Jetzt herunterladen' class="SubmitButton"> </form></pre> <p>Die veröffentlichten Daten werden an das folgende Skript gesendet: </p> <pre class="brush:php;toolbar:false;"><?php $CompetitorPartNumber = $_POST['CompetitorPartNumber']; echo "<h1>".$CompetitorPartNumber."</h1>"; ?></pre> <p>Das Problem, das ich habe, ist also, dass die Ergebnisse bei der Ausgabe in verschiedenen Zeilen mit Leerzeichen anstelle von Elementen angezeigt werden. Dies ist in Ordnung, es sei denn, der Benutzer hat wirklich versehentlich ein Leerzeichen eingegeben. Ich dachte, ich könnte die Anzahl der Felder im Array bestimmen, indem ich die Leerzeichen zähle. Teilen Sie dann die Variable durch ein Leerzeichen auf. Der Benutzer kann jedoch am Ende Leerzeichen eingeben, daher halte ich dies nicht für eine gute Strategie, da ich möglicherweise leere Ergebnisse erhalte. Ich wünschte, ich könnte fragen, ob jemand anderes ein Codebeispiel zur Lösung dieses Problems hat. </p>
P粉647449444
P粉647449444

Antworte allen(1)
P粉530519234

表单

<?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">

目标脚本

<?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>

输出结果类似于:

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage