Heim  >  Fragen und Antworten  >  Hauptteil

So teilen Sie HTML-Eingabefelder mithilfe mehrerer PHP-Variablen auf, implementiert durch Zeilenumbrüche

<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粉647449444P粉647449444450 Tage vor588

Antworte allen(1)Ich werde antworten

  • P粉530519234

    P粉5305192342023-08-17 10:59:14

    表单

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

    输出结果类似于:

    Antwort
    0
  • StornierenAntwort