4

まず第一に、私はPHPとコーディングにまったく慣れていませんが、ここに行きます。

txtファイル(サーバー上のフォルダーにあります)から情報を取得する必要があるWebフォームがあります。ファイルから情報を取得する方法と、ドロップダウンリストを作成する方法を取得し、すべてのファイルを表示します。フォルダ。しかし、私が理解できないのは、それらを一緒に機能させる方法であるため、それが読み取るファイル名は、ドロップダウンリストの選択された値から取得されます。

ドロップダウンリストのコード:

<? 
$currentdir = 'files'; //change to your directory 
$dir = opendir($currentdir); 

echo 'Files are as follows:<br>'; 
echo '<select name="select">'; 
while($file = readdir($dir)) 
{ 
    echo '<option value="'.$file.'">'.$file.'</option>'; 
} 
echo '</select>'; 
closedir($dir); ?>

およびファイルから読み取るコード:

<input type="text" value="<?php $myFile = ""; $lines = file($myFile); echo $lines[2]; ?>" name="refnr" id="refnr" class="input" />

ドロップダウンにtest.txtとtest2.txtの2つのファイルが表示されているとします。ドロップダウンからtest2.txtを選択した場合、<?php $myFile = "";の「」の間に「test2.txt」を入れたいと思います。しかし、選択した値を取得するためにコードをそこに配置しようとしても、失敗します...

現在の私のフォームの完全なコード:

<?php
if (!empty($_POST)) {

    // Used for later to determine result
    $success = $error = false;

    // Object syntax looks better and is easier to use than arrays to me
    $post = new stdClass;

    // Usually there would be much more validation and filtering, but this
    // will work for now.
    foreach ($_POST as $key => $val)
        $post->$key = trim(strip_tags($_POST[$key]));

    // Check for blank fields
    if (empty($post->refnr))
        $error = true;

    else {

        // Get this directory, to include other files from
        $dir = dirname(__FILE__);

        // Get the contents of the pdf into a variable for later
        ob_start();
        require_once($dir.'/pdf.php');
        $pdf_html = ob_get_contents();
        ob_end_clean();

        // Load the dompdf files
        require_once($dir.'/dompdf/dompdf_config.inc.php');

        $dompdf = new DOMPDF(); // Create new instance of dompdf
        $dompdf->load_html($pdf_html); // Load the html
        $dompdf->render(); // Parse the html, convert to PDF
        $pdf_content = $dompdf->output(); // Put contents of pdf into variable for later

        // Get the contents of the HTML email into a variable for later
        ob_start();
        require_once($dir.'/html.php');
        $html_message = ob_get_contents();
        ob_end_clean();

        // Load the SwiftMailer files
        require_once($dir.'/swift/swift_required.php');

        $mailer = new Swift_Mailer(new Swift_MailTransport()); // Create new instance of SwiftMailer

        $message = Swift_Message::newInstance()
                       ->setSubject('Felanmalan') // Message subject
                       ->setTo(array('mymail@hidden' => 'Fel')) // Array of people to send to
                       ->setFrom(array('mymail@hidden' => 'Fel')) // From:
                       ->setBody($html_message, 'text/html') // Attach that HTML message from earlier
                       ->attach(Swift_Attachment::newInstance($pdf_content, 'Felanmalan.pdf', 'application/pdf')); // Attach the generated PDF from earlier

        // Send the email, and show user message
        if ($mailer->send($message))
            $success = true;
        else
            $error = true;

    }

}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Felanm&auml;lan fr&aring;n IKEA</title>
    <style type="text/css">
        html, body, h1, h2, h3, h4, h5, h6, p, span, ul, li, div, form, input, select, textarea, button {margin:0; padding:0;}
        ul {list-style:none;}
        a, a:hover {text-decoration:none; outline:0;}
        a img {border:0;}

        body {font:12px/16px Verdana, Arial, sans-serif; background:#ffffff;}
        #container {width:450px; margin:10px auto; padding:10px; overflow:hidden; border:1px solid #000; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px; background:#F9F9F9;}
        #container h1 {margin-bottom:20px; font-size:40px; line-height:40px; font-family:'HelveticaNeue-Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight:normal;}
        .message {margin-bottom:10px; padding:5px;}
        .success {color:#4F8A10; border:1px solid #4F8A10; background:#DFF2BF;}
        .error {color:#D8000C; border:1px solid #D8000C; background:#FFBABA;}
        label {display:block; margin-bottom:3px; cursor:pointer;}
        .input, textarea, select, button {display:block; width:440px; margin-bottom:10px; padding:3px; font:22px/22px 'HelveticaNeue-Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; border:1px solid #CCC; border-top-width:2px;}
        textarea {font-size:13px; line-height:16px;}
        select {width:396px;}
        button {float:right; width:auto; margin-bottom:0; padding:3px 30px; cursor:pointer; font-size:16px; border:1px solid #999; border-bottom-width:2px; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; background:#EEE;}
        button:active {border-bottom-width:1px; padding:4px 30px 3px; background:#E9E9E9;}
    </style>
</head>
<body>
<? 
$currentdir = 'files'; //change to your directory 
$dir = opendir($currentdir); 

echo 'Files are as follows:<br>'; 
echo '<select name="select">'; 
while($file = readdir($dir)) 
{ 
    echo '<option value="'.$file.'">'.$file.'</option>'; 
} 
echo '</select>'; 
closedir($dir); ?>

    <div id="container">

        <h1><img src="felimg.png" />  Felanm&auml;lan</h1>

        <?php if ($success) { ?>
            <div class="message success">
                <h4>Congratulations! It worked! Now check your email.</h4>
            </div>
        <?php } elseif ($error) { ?>
            <div class="message error">
                <h4>Sorry, an error occurred. Try again!</h4>
            </div>
        <?php } ?>

        <form method="post" action="">
            <label for="date"><b>Date:</b></label>
            <input type="text" readonly name="date" id="date" class="input" value="<? print(Date("Y-m-d")); ?>"/>

            <label for="refnr"><b>Referensnummer:</b></label>
            <input type="text" value="<?php $myFile = ""; $lines = file($myFile); echo $lines[2]; ?>" name="refnr" id="refnr" class="input" />

            <label for="bestav"><b>Best&auml;lld av:</b></label>
            <input type="text" name="bestav" id="bestav" class="input" />           

            <label for="tel"><b>Tel:</b></label>
            <input type="text" name="tel" id="tel" class="input" />

            <label for="email"><b>Email:</b></label>
            <input type="text" name="email" id="email" class="input" />         

            <label for="kund"><b>Kund:</b></label>
            <textarea name="kund" id="kund" rows="4" cols="40"></textarea>

            <label for="ktel"><b>Tel:</b></label>
            <input type="text" name="ktel" id="ktel" class="input" />

            <label for="art"><b>Ber&ouml;rd Artikel:</b></label>
            <textarea name="art" id="art" rows="3" cols="40"></textarea>

            <label for="fel"><b>Fel p&aring; varan: </b></label>
            <textarea name="fel" id="fel" rows="2" cols="40"></textarea>

            <label for="q1"><b>Installation gjord av fackman:</b></label>
            <select name="q1" id="q1">
                <option value="Ja">Ja</option>
                <option value="Nej">Nej</option>
            </select>

            <label for="q2"><b>Serviceverkstad:</b></label>
            <input type="text" name="q2" id="q2" class="input" />

            <label for="q3"><b>Servicenr:</b></label>
            <input type="text" name="q3" id="q3" class="input" />

            <label for="q4"><b>Serienr:</b></label>
            <input type="text" name="q4" id="q4" class="input" />

            <label for="q5"><b>Inom garanti eller reklamation:</b></label>
            <select name="q5" id="q5">
                <option value="Garanti">Garanti</option>
                <option value="Reklamation">Reklamation</option>
            </select>

            <label for="q6"><b>Informerat om punkt 8:</b></label>
            <select name="q6" id="q6">
                <option value="Ja">Ja</option>
                <option value="Nej">Nej</option>
            </select>           

            <label for="q7"><b>Har kund sj&auml;lv g&aring;tt igenom manual f&ouml;r fels&ouml;kning:</b></label>
            <select name="q7" id="q7">
                <option value="Ja">Ja</option>
                <option value="Nej">Nej</option>
            </select>               

            <label for="q8"><b>Ordernr:</b></label>
            <input type="text" name="q8" id="q8" class="input" />

            <label for="q9"><b>Ink&ouml;psdatum:</b></label>
            <input type="date" name="q9" id="q9" class="input" /><br>


            <p><button type="submit">Submit!</button></p>
        </form>

    </div>

</body>
</html>

それが理にかなっていることを願っています、そしてそれが初心者の質問であることが判明した場合は申し訳ありません:)私は2日間のグーグルとテストを使用しました、そして私は単に正しい方向にもう一度少し押す必要があるポイントに到達しました。

前もって感謝します。

psは私の目標を簡単に説明します。次に、txtファイルを生成してサーバーに保存する1つのWebフォームがあります。次に、「管理者」がドロップダウンからファイルを選択できる別のフォームがあり、その中の情報を取得します。クライアントはtxtバージョンに記入し、次に記入する必要があるものを記入し、それを保存して技術者にPDFとして送信します。

4

3 に答える 3

1

あなたが使用することができます

echo '<select id="select" name="select">'; 
while($file = readdir($dir)) 
{ 
    echo '<option value="'.$file.'">'.$file.'</option>'; 
} 
echo '</select>'; 

そしてDOMにロードされた後、使用します

document.getElementById('select').onchange=changeSelect;
function changeSelect(){
    document.getElementById('refnr').value=document.getElementById('select').value;
}
changeSelect();

こちらをご覧ください:http://jsfiddle.net/7nzBS/

于 2012-09-02T15:47:31.277 に答える
0

ありがとうOriol、それはうまくいきました:)

コードは次のようになり、必要に応じて機能しています。また、他のすべての提案にも感謝します。迅速で役立つ返信があります:)

            <label for="refnr"><b>Referensnummer:</b></label>
        <input type="text" value="<?php $selectedfile = @$_POST['file2']; $myFile = "files/$selectedfile"; $lines = file($myFile); echo $lines[0]; ?>" name="refnr" id="refnr" class="input" />
于 2012-09-02T18:12:21.640 に答える
0
I wanted it to put "test2.txt" in between the "" at `<?php $myFile = ""`

"text2.txt"はクライアント側にあり$myfile、php 変数はサーバー側にあるため、このようなことはできません。サーバー側からクライアント側のデータにアクセスしたい場合は、HTTP 経由でデータを送信する必要があります。したがって、次の 2 つの選択肢があります。

  1. 選択した値を HTTP postまたはget経由で送信します。
  2. 選択した値をAJAX経由で送信します。
于 2012-09-02T16:03:35.287 に答える