0

ユーザー入力に基づいてテキストフィールドを生成するjqueryフォームスピナースクリプトがあり、正常に機能しています。しかし、php $ _POSTで変数値をフェッチできるように、これらのフィールドに名前を付ける方法を理解する必要があります。

Pls注:ユーザーが入力した番号に応じて、行ごとに5つの入力テキストフィールドが生成されます。これらのフィールドは、名前、電話番号、電子メール、性別、および役職です。以下は、各入力フィールドに付ける名前です。

cand_name, cand_phone, cand_email, cand_sex, cand_pos

plsは以下のリンクでjqueryフォームスピナースクリプトを見つけます

http://o2decor.com/form_scripts/jquery.fspin.js

以下はhtmlへのリンクです

<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Form Spinner Test</title>
        <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="jquery.fspin.js"></script>
        <script type="text/javascript">
            $(function(){
                //you have to use the ID not the name of the fields we're interested in
                jQ_Form_Spinner('#container','#myrel',jQ_Form_Spinner_data);
            });
        </script>
    </head>

<body>


<form action="course_reg.php" method="post">
<p>
<label><strong>No of Candidates</strong></label>
<label><input type="text" id="myrel" name="cand_no" placeholder="Type Your Number of Candidates" /></label>
  <div class="clear"></div>
</p>

<div style="width:660px; float: left; border: 1px solid #ccc; padding:3px 3px;" id='container'>

</div>


</form>

以下は、jscriptを実行しているフォームページを表示するためのリンクです(完全に機能しています)

http://o2decor.com/form_scripts/form.php

申し訳ありませんが、jqueryコードをここに貼り付けることができませんでした。stackoverflowは私の質問を受け入れませんでした。コードを適切にフォーマットしていませんでした...誰かがこの問題を解決してくれれば幸いです...ありがとう

4

3 に答える 3

0

したがって、あなたが抱えている問題は、たとえば、動的な量の電話番号があり、それらすべてを投稿にキャプチャしたいということです。しかし問題は、それらがすべて同じ名前を持っていることです。

name="phone_number";

配列として渡すことができます

name="phone_number[]"

次に、php送信ページでループします。

私は正しいですか?

于 2012-11-09T17:08:08.293 に答える
0

このデモをご覧ください。

以下のJavaScript(form.php)は、フォームが次の命名規則で送信されたときにフィールドの名前を変更します。—candidate[X][Y]ここで、Xは行番号、Yはフィールド名です。

したがって、たとえば、最初の行の電話candidate[0][phone]フィールドには名前が付けられ、2番目の行の電子メールフィールドには名前が付けられcandidate[1][email]ます。

<script>
$(function(){
    var fields = ['name', 'phone', 'email', 'sex', 'pos'];
    $('form').on('submit', function(e){
        $('#container tbody tr').each(function(i){
            $(this).find('td').each(function(j){
                var field = fields[j];
                $(this).find(':input').attr('name', 'candidate[' + i + '][' + field + ']');
            });
        });
    });
});
</script>

PHP側(course_reg.php$_POST['candidate'] )で得られるのは、構造化された形式のすべてのデータを多次元配列として含む単一の変数( )です。

array(2) {
  [0]=>
  array(5) {
    ["name"]=>
    string(8) "Jane Doe"
    ["phone"]=>
    string(12) "123-555-4567"
    ["email"]=>
    string(18) "jane.doe@email.add"
    ["sex"]=>
    string(6) "female"
    ["pos"]=>
    string(3) "CEO"
  }
  [1]=>
  array(5) {
    ["name"]=>
    string(8) "John Doe"
    ["phone"]=>
    string(12) "234-555-6789"
    ["email"]=>
    string(18) "john.doe@email.add"
    ["sex"]=>
    string(4) "male"
    ["pos"]=>
    string(3) "CTO"
  }
}

上記のデータで入力されたフォームはどのように見えましたか:http://i.imgur.com/6yxbe.gif

以下のPHPを使用して、このデータを読み込むことができます。(注:これは単なるデモです。セキュリティに関するものはあなたに任せます。)

<?php

$candidates = array();

foreach ($_POST['candidate'] as $i => $can)
{
    $candidates[$i] = array();

    foreach ($can as $key => $value)
    {
        $candidates[$i][$key] = $value;
    }
}

echo '<pre>';
var_dump($candidates);

もちろん、同じ構造を維持しているため、とvar_dump($candidates)まったく同じ出力が生成されます。var_dump($_POST['candidate'])

データをどのように構成するかはあなた次第です。

アップデート:

form.phpcourse_reg.phpを含むこのZIPアーカイブを作成しました:[ダウンロード]

  1. 2つのファイルをサーバーにアップロードします。
  2. Webブラウザからform.phpにアクセスします。
  3. フォームに入力します。
  4. 「送信」ボタンを押します。
  5. これで、 course_reg.phpに入力されたデータが表示されます。

どうなるか教えてください。

于 2012-11-09T19:02:45.953 に答える
0

あなたが抱えている問題は、あなたが使用しているjQ_Form_Spinnerプラグインが吸うということです:)

フォーム要素ごとに作成されるname属性とid属性を確認します。

<input type="text" name="textfield_0" id="textfield_0" placeholder="Enter your full name" style="margin-right: 12px;" class="">

この構成では、これらの名前を他の名前に変更することさえできません。それに基づいて、これを機能させるのに苦労するでしょう。

jQ_Form_Spinner_getField関数が各フォーム要素に適切な名前とID属性を作成するように、プラグインを変更する必要があります。

私のアドバイスは、jQ_Form_Spinnerプラグインを取り除くことです。あなたはそれを必要としません。Javascript / jQueryコードを手動で作成する場合、実行しようとしていること(動的にフォームを作成すること)は簡単です。コーディングを学んでいるだけの場合、これは最初から始めるのに適したタスクです。

試してみて、行き詰まったらさらに質問してください。

于 2012-11-12T19:40:06.420 に答える