2012-04-03 15 views
1

私のコードでは、VALUESをデータベースに挿入しようとしています。私はswitch文を使用しています。ここでは、テキストボックスがケースの1つと等しい場合、データベースの 'OptionType'行の1つと一致し、その表示から 'OptionType'と一致する 'OptionId'が一致します。以下の例のテキストボックスから値を取得するには

しかし、問題は、$ optionqueryでvar_dumpを実行しているときに、テキストボックスから値をリタイアしていないことを示しています。テキストボックス($ _POST ['gridValues'])から値を取得するために、クエリから$ selected_optionを取得するにはどうすればよいですか?

現時点では、case文を使用してテキストボックスから値を取得しようとしています。例えば。テキストボックスに数字「4」が含まれている場合は、「4」のケースが表示されます。以下

 <script> 

      function insertQuestion(form) { 

    var context = $('#optionAndAnswer'); 

      var $tbody = $('#qandatbl > tbody'); 
      var $tr = $("<tr class='optionAndAnswer' align='center'></tr>"); 
      var $options = $("<td class='option'></td>"); 
      var $questionType = ''; 

      $('.gridTxt', context).each(function() { 

      var $this = $(this); 
      var $optionsText = $("<input type='text' class='gridTxtRow maxRow' readonly='readonly' />").attr('name',$this.attr('name')+"[]") 
          .attr('value',$this.val()) 

      $options.append($optionsText); 
      $questionType = $this.val(); 

      }); 

    $tr.append($options); 
    $tbody.append($tr); 

     </script> 


     <form id="QandA" action="insertQuestion.php" method="post" > 

     <table id="optionAndAnswer" class="optionAndAnswer"> 
     <tr class="option"> 
     <td>Option Type:</td> 
     <td> 
     <div> 
      <input type="text" name="gridValues" class="gridTxt maxRow" readonly="readonly" /> 
     </div> 
     </td> 
     </tr> 
     </table> 

     </form> 

すべてのデータベースのものが発生したPHPコードである:

+0

'context'は' $(「gridTxt」、コンテキスト) 'の通話に含まれていないでしょうか? –

+0

私はアップデートにコンテキストコードを含めましたが、contextは(#optionAndAnswer)というテーブルの名前です。 – user1309180

+0

var_dump($ _ POST)を実行すると、そこに 'gridValues'キーが表示されていますか? –

答えて

1
$insertquestion = array(); 


$options = $_POST['gridValues']; 

switch ($options){ 

    case "3": 
    $selected_option = "A-C"; 
    break; 

    case "4": 
    $selected_option = "A-D"; 
    break; 

    case "5": 
    $selected_option = "A-E"; 
    break; 

    default: 
    $selected_option = ""; 
    break; 

}  

$optionquery = "SELECT OptionId FROM Option_Table WHERE (OptionType = '" 
    . mysql_real_escape_string($selected_option)."')"; 

$optionrs = mysql_query($optionquery); 
$optionrecord = mysql_fetch_array($optionrs); 
$optionid = $optionrecord['OptionId']; 



foreach($_POST['questionText'] as $question) 
{ 
    $insertquestion[] ="' ". mysql_real_escape_string($optionid) . "'"; 
} 

    $questionsql = "INSERT INTO Question (OptionId) 
    VALUES (" . implode('), (', $insertquestion) . ")"; 



echo($questionsql); 

var_dump($optionquery); 

mysql_close(); 

すぐ下

は、アプリケーションに新しいテーブル行に付加されるテキストボックスのコードでありますswitch(var_dumpに基づいて)をループする必要があります:

$option_array = array(); 
foreach($options as $i) 
{ 
    switch($i) 
    { 
    case '1': 
    if(!empty($i)){ $option_array[] = $selected_option; } 
    break; 
    //so on, and so forth for all of your field data... 
    } 
} 

あなたのフィールド値の再加工され、$ option_arrayに保存されている、ことができますループを通る:

foreach($option_array as $i) 
{ 
    //do whatever mysql jazz you need to do to get your data 
} 
+0

こんにちは、これはテキストボックスからオプションのIDを退職しました。私は少し問題がある。 2つの質問を追加すると、最初の質問は 'O3'と2番目の質問 'O12'であると考えられます。代わりにINSERT VALUESでは、両方の質問にoptionIdが 'O12'と表示されます。 $ insertquestion []のループを変更する必要があるからですか? – user1309180

+0

さて、あなたは$ selected_optionsを上書きしています。私の変更された答えを見る –

関連する問題