Добавление переменной приращения вместе с именем идентификатора для текстового поля, не работающего в среде PHP yii1 - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю таблицу в контроллере и передаю ее для просмотра в качестве ответа AJAX. Внутри этой таблицы есть раскрывающийся список для каждой строки. Когда я выбираю значение параметра «Другие», я должен показать текстовое поле рядом с этим раскрывающимся списком в том же столбце.и сохраните значение в каждом текстовом поле.

Чтобы сделать каждый идентификатор текстового поля уникальным, я добавляю инкрементную переменную $ s1 вместе с 'othermerits -'. Например - id = "othermerits-2". Но когда я проверяюэлемент показывает только id = "othermerits". Я даю приведенный ниже пример кода, написанный на моем контроллере. Пожалуйста, обратитесь к части "else".

if (isset($_POST['date'])) {
                $date = $_POST['date'];
                $academic = Academic::model()>findByAttributes(array('status' => 1));
            $students = Student::model()>findAllByAttributes(array('courseid' => $courseid, 'batchid' => $batchid)); 
            $sendtable = "";
            $sl = 1;

            foreach ($students as $student) {//! for each student studentid, 
student admission number and name is send to form
                $teacher = Teachercomments::model()>findByAttributes(array('studentid' => $student->studentid, 'courseid' => 
$courseid, 'batchid' => $batchid, 'date' => $date, 'academicid' => 
$academic->academicid, 'userid' => Yii::app()->user->userid, 'usertypeid' => 
Yii::app()->user->usertypeid));
                if (isset($teacher)) {
                      $sendtable = $sendtable . '<tr><td data-id="' . 
$student->studentid . '">' . $sl . '</td><td>' . $student->student_firstname 
. " " . $student->student_middlename . " " . $student->student_lastname . 
'</td><td>' . '<input type="text" name="merits" id="merits" value="' . 
$teacher->merit . '"  class="merits"></td><td><input type="text"  value="' . 
$teacher->demerit . '"  name="demerits" class="demerits"></td></tr>';
                 } else {
$sendtable = $sendtable . '<tr><td data-id="' . $students->studentid . '">' 
. $sl . '</td><td>' . $students->student_firstname . " " . $students->student_middlename . " " . $students->student_lastname . '</td><td><select 
name="merits" id="merits" class="merits" 
onchange="GetSelectedTextValue(this,'.$s1.')"><option value="Good 
Discipline">Good Discipline</option><option value="Good Listener">Good 
Listener</option><option value="Other">Other</option></select><input 
type="text" name="othermerits" id="othermerits-'.$s1.'" class="merits" 
style=""/></td><td><select name="demerits" class="demerits"><option 
value="Careless">Careless</option><option value="Bad Listener">Bad 
Listener</option><option value="Other">Other</option></select></td></tr>';
    }
 $sl = $sl + 1;
 }
            echo $sendtable;
        }

1 Ответ

0 голосов
/ 28 ноября 2018

Я не знаю, является ли это опечаткой, но на этих линиях буксировки вы используете $ s1

<select name="merits" id="merits" class="merits" onchange="GetSelectedTextValue(this,'.$s1.')">
<input type="text" name="othermerits" id="othermerits-'.$s1.'" class="merits" style=""/>

и ваша переменная улучшения равна $ sl

$sl = $sl + 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...