0

I want the user to be able to add a question from a table row into a textarea. The textarea the question goes into depends on the ".plus" button the user selected to choose their question.

E.g. If the user clicked on the plus button on the top of the page, then the question when the user clicks on the "Add" button goes into the textarea on top of the page.

Another E.g. If the user clicked on the plus button in the 5th table row, the question when the user clicks on the "Add" button goes into the textarea within that row (5th row).

The problem I am having though is that when the user clicks on the "Add" button, nothing happens. It is suppose to close the modal window and insert the question into the correct textarea but nothing is happening. It is not closing the modal window and it is not inserting a question into a textarea.

What am I doing wrong?

Below is the code for the application:

<head>
    <script type="text/javascript">
        function insertQuestion(form) {
            var $tbody = $('#qandatbl > tbody');
            var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
            var $plusrow = $("<td class='plusrow'></td>");
            var $question = $("<td class='question'></td>");
            $('.questionTextArea').each(function () {
                var $this = $(this);
                var $questionText = $("<textarea class='textAreaQuestion'></textarea>").attr('name', $this.attr('name') + "[]").attr('value', $this.val());
                $question.append($questionText);
            });
            $('.plusimage').each(function () {
                var $this = $(this);
                var $plusimagerow = $("<a onclick='return plusbutton();'><img src='Images/plussign.jpg' width='30' height='30' alt='Look Up Previous Question' class='imageplus'/></a>").attr('name', $this.attr('name') + "[]").attr('value', $this.val());
                $plusrow.append($plusimagerow);
            });
            $tr.append($plusrow);
            $tr.append($question);
            $tbody.append($tr);
            form.questionText.value = "";
            $('.questionTextArea').val('');
        }

        function plusbutton() {
            // Display an external page using an iframe 
            var src = "previousquestions.php";
            $.modal('<iframe src="' + src + '" style="border:0;width:100%;height:100%;">');
            return false;
        }

        function closewindow() {
            $.modal.close();
            return false;
        }
        $(document).on('click', '.add', function () {
            console.log("clicked");
            //lets get our Question Text... 
            var theQuestion = $("td:first-child", $(this).parent()).text();
            //the row is present, let's then make sure that the proper cell gets oru data. 
            if ($('.activePlusRow').length > 0) {
                $('.activePlusRow').next('.textAreaQuestion').val(theQuestion);
                $('.activePlusRow').removeClass('activePlusRow');
            }
            $.modal.close();
            return true;
        });
        $(document).on('click', '.plusrow', function () {
            //adding a unique class for the purpose of the click. 
            $(this).addClass('activePlusRow');
        });
    </script>
</head>
<body>
    <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post">
        <div id="detailsBlock">
            <table id="question">
                <tr>
                    <td rowspan="3">Question:</td>
                    <td rowspan="3">
                        <textarea class="questionTextArea" rows="5" cols="40" name="questionText"></textarea>
                    </td>
                </tr>
            </table>
            <table id="plus" align="center">
                <tr>
                    <th>
                        <a onclick="return plusbutton();">
            <img src="Images/plussign.jpg" width="30" height="30" alt="Look Up Previous Question" class="plusimage" name="plusbuttonrow"/>
            </a>
                        <span id="plussignmsg">(Click Plus Sign to look
                            <br/>up Previous Questions)</span>
                    </th>
                </tr>
            </table>
            <table id="questionBtn" align="center">
                <tr>
                    <th>
                        <input id="addQuestionBtn" name="addQuestion" type="button" value="Add Question"
                        onClick="insertQuestion(this.form)" />
                    </th>
                </tr>
            </table>
        </div>
        <hr/>
        <div id="details">
            <table id="qandatbl" align="center">
                <thead>
                    <tr>
                        <th class="plusrow"></th>
                        <th class="question">Question</th>
                    </tr>
                </thead>
                <tbody></tbody>
            </table>
        </div>
    </form>
</body>

The details stored in the modal window comes from a seperate script known as "previousquestions.php", Below is the code where it shows the result of the "QuestionContent" field only displayed and it's "Add" button after the user has compiled a search:

<?php 

      $output = "";
$output .= "
    <table border='1' id='resulttbl'>
      <tr>
      <th id='questionth'>Question</th>
      </tr>
";
        while ($questionrow = mysql_fetch_assoc($questionresult)) {
$output .= "
      <tr>
      <td id='questiontd'>{$questionrow['QuestionContent']}</td>
      <td id='addtd'><button type='button' class='add'>Add</button></td>
      </tr>";
        }
        $output .= "        </table>";

        echo $output;

  }

}

?> 

Thank you

4

1 回答 1

0
var $questionText = $("<textarea class='textAreaQuestion'></textarea>")
                           .attr('name',$this.attr('name')+"[]")
                           .val($this.val());  // .val() for set value to textarea
于 2012-05-29T17:05:10.727 回答