2

私は巨大なフォームを持っており、フォームの一部でjsを使用してデータベースに値を挿入したいと思います。質問の提示方法がわからない場合がありますが、ここでのニーズは次のとおりです。データベースtable1、table2に2つのテーブルがあるとします。html形式の場合:

<select name="tab1" id="tab1">  
<?php   while($row = fetch from table 1){   ?>  
        <option value"<?=$row['name']?>" name="option1"><?=$row['name']?></option>  
<?php  }  ?>  
</select>  
<input type="file" name="file">  
<input type="button" name="button" onclick="submit_form(true,'');">

ここで、$ row ['name']値をjavascriptのsubmit_form()関数に渡します。javascriptコードは値をチェックし、フォームに返して送信します。私の質問は、table1の$ row ['name']がwhileループ内にあるため、値をjavascriptに渡すことができないということです。フォームが小さければ、送信ボタンを使用して$ _POST('submit')タイプを確認できます。このフォームの$row['name']を、名前に関連付けられたファイル名としてtable2に挿入します。

4

3 に答える 3

1

submit_form()私が理解しているように、選択した値をフォームから関数に渡したいですか?

function submit_form(param1, param2){

    var passedValue = document.getElementById('tab1').value;

     // here is your old submit_form() function. passedValue contains 
     // your selected $row['name']

}
于 2012-05-05T12:25:29.917 に答える
0

@Jhilke Dai、まず第一に、あなたのphpコードは少しバグがあります、'='記号はphpではなくhtmlになければなりません正しいコードは

<select name="tab1" id="tab1"> 
<?php while($row = fetch from table 1) { ?> 
<option value="<? echo $row['name'] ?>" name="option1"><? echo $row['name'] ?></option> 
<?php } ?> 
</select> 
<input type="file" name="file"> <input type="button" name="button" onclick="submit_form(true,'')">
于 2012-05-05T12:03:15.940 に答える
0

ジェネリック関数またはjQuery反復を使用して、フォーム値をフェッチできます

同様の質問の回答を参照してください:変更時に​​選択から選択した値/テキストを取得します

function getDomValueByID( id ) {
    return document.getElementById(id).value;
}

function submit_form( a, b ) {
    var formValue = getDomValueByID( 'tab1' );
    //OR
    var jQueryFormValue = jQuery( "#tab1" ).val();
    //Do what u want here.
}

実際、次の理由でオプションデータがすでにページ上に生成されている場合、javaScriptを介してオプションデータを渡すことは非常に悪い考えであると考える人もいます。

  1. データが重複しているため、帯域幅が無駄になっています。
  2. 移植性の低いコード、非OOP。
  3. 保守が難しく、phpコードを変更するには、javaScriptコードを変更する必要があります。

また、本当に興味がある場合(この方法は時々眉をひそめます)。ヘッダーのどこかでPHPコードとして以下を使用できます。PHP変数をJavaScriptに渡すため。ただし、JSONSからXMLまで、これを行うためのより良い方法はたくさんあります。

<?php optList = ['one', 'two', 'three']; ?>
<script type="text/javascript">
     //Window represents the global variable space, and doing this is really bad practice as listed above.
     window.optionList = [ <?php echo( implode(' , ', optList) );?> ];
</script>
于 2012-05-05T12:41:29.567 に答える