-2

動的に作成されたテキスト ボックスからデータを収集する方法について助けが必要です。私は自分のhtmlコードを与えています。テキストボックスのコードの追加と削除は完全に機能しています。textboex の配列を定義する際に、どこで間違っているのか知りたいです。テキストボックスの値を適切に収集していないかどうか。別の質問は、DB に挿入するページを送信した後、この配列値を別のページに渡す方法です。

このコードは、旅行代理店のツアーの旅程の値を取得するためのものです。

ここに私のHTMLフォームがあります `旅程の詳細を入力してください ツアーの名前(カテゴリ) 日数 都市 旅程 泊 滞在 -->

            <div id="TextBoxesGroup">

              <div id="TextBoxDiv1">

                <label></label>

                <input type='text'  id='dayNo'  name="itinerary[]" >
                <input type="text"  id='cityName'  name="itinerary[]">
                <input type='text'  id='schedule'  name="itinerary[]">
                <input type='text'  id='nightStay'  name="itinerary[]">

              </div>

            </div>

            <input type='button' value='Add Button' id='addButton'>
            <input type='button' value='Remove Button' id='removeButton'>
            <input type='button' value='Get TextBox Value' id='getButtonValue'>     
            <input type="submit" name="submit" id="submit" value="Submit" />

            </td>
        </tr>
      </table>
    </form>`

正しい配列名「itinerary[]」を定義したかどうかを知りたいです。10 日間のツアーがある場合、4 つのフィールドを含む 10 行になります。これらの行を収集して別のページに送信して挿入するにはどうすればよいですか。配列にまとめた後のVALUES()部分の書き方を教えてください。セッションを使用して、この 10 行のデータを送信できますか。このデータをパラメーターとして送信できますか。1回の投稿で多くの質問をして申し訳ありません。私はこれらすべての方法を試しましたが、成功しないか、おそらくどこかで間違っています。これがライブサイトであることを助けてください。この部分で立ち往生 事前に数百万人に感謝します。


ansへの返信が遅れて申し訳ありません。実際、配列をどのように宣言すればよいか、本当にわかりません。正直なところ、これは私を非常にイライラさせています。そして時間を失う。できれば案内してください。テキストボックスを動的に追加するためのJSコードを提供しています。以前の投稿でHTMLコードを提供しました。宣言する配列の命名規則が正しいかどうかを確認してください。私のコードに必要な変更を加えて、ここに貼り付けてください。

テキストボックスを動的に追加する私のJSコードは次のとおりです

$(document).ready(function(){

var counter = 2;

$("#addButton").click(function () {

if(counter>30){
        alert("Only 30 textboxes allow");
        return false;
}   

var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter + ' ' + 'style="width:750px;"');

newTextBoxDiv.html(
      '<input type="text" name="itinerary[dayNo]'+ counter + '" id="dayNo'+ counter + '" value="'+ counter + '" >' +
      '<input type="text" name="itinerary[cityName]'+ counter + '" id="cityName'+ counter + '" value="" >'+
      '<input type="text" name="itinerary[schedule]'+ counter + '" id="schedule'+ counter + '" value="" >'+
      '<input type="text" name="itinerary[nightStay]'+ counter + '" id="nightStay'+ counter + '" value="" >' );

newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
 });

いいえ、HTML コードを再度提供しています。名前が適切に提供されているかどうかを確認できますか。それは私にとって最大の助けになります。

ここに私のHTMLコードがあります

 <div id='TextBoxesGroup'>

              <div id="TextBoxDiv1">

                <label></label>

                <input type='text'  id='dayNo'  name="itinerary[dayNo][]" >
                <input type="text"  id='cityName'  name="itinerary[cityName][]">
                <input type='text'  id='schedule'  name="itinerary[schedule][]">
                <input type='text'  id='nightStay'  name="itinerary[nightStay][]">
              </div>
            </div>

            <input type='button' value='Add Button' id='addButton'>
            <input type='button' value='Remove Button' id='removeButton'>
            <input type='button' value='Get TextBox Value' id='getButtonValue'>     
            <input type="submit" name="submit" id="submit" value="Submit" />              

配列に収集された値をセッションに渡す方法、または ---action="savedata.php?arr=...." のような URL を使用する方法を教えてください。

私のコード自体を修正してください..私は新しく、ここ数日から非常に迷っています。

配列に値を渡すことについて、私はこのように書きました

<?php

   $totalArray = itinerary;

   $_session['tArray'][]=$totalArray;

?>

セッションを介して送信するこの正しい方法はありますか。何百万もの前もって感謝します

4

1 に答える 1

0

問題がよくわかりません。手順を説明します。

  • ダイナミクス入力に汎用 ID を使用しないでください。
  • PHPはIDについては関係ありません
  • スケジュールの「ブロック」を一致させ、それを jQuery と一致させたい場合は、適切な data-* をそれぞれまたはクラスに設定します。

例を次に示します。

<div class="TextBox" data-formNum="0">
   <input type='text' name="itinerary[dayNo][]">
   <input type='text' name="itinerary[cityName][]">
   <input type='text' name="itinerary[schedule][]">
   <input type='text' name="itinerary[nightStay][]">
</div>

jQuery でフォームのブロックを追加する場合は、次を使用します。

var idToAdd = $(".TextBox:last").attr("data-formNum")+1;

このフォームを PHP に送信すると、すべてが次のようにフォーマットされます。

Array
(
    [intinerary] => Array
        (
            [dayNo] => Array
                (
                    [0] => 15
                    [1] => 14
                )

            [cityName] => Array
                (
                    [0] => London
                    [1] => Prague
                )
               ...

INSERT INTO次に、この配列で循環する関数を次のように記述できます。

for ($i=0; $i < count($_POST['itinerary']['dayNo']);$i++)
{
     $day = $_POST['itinerary']['dayNo'][$i];
     $cit = $_POST['itinerary']['cityName'][$i];
}

これが役に立ったことを願っています。
誤解した場合はお知らせください。

于 2012-08-30T15:02:17.977 に答える