#javascript #php #codeigniter
#javascript #php #codeigniter
Вопрос:
Я обнаружил ошибку в своем скрипте.
Я хочу вызвать оповещение javascript и отобразить его в моем представлении с текстом span. Но с моим скриптом ничего не происходит. Интервал не отображается из оповещения на контроллере.
Это мой контроллер :
public function validate_objectb()
{
$id_with = $_POST['id'];
$objectb= $_POST['objectb'];
$data = array(
'id' => $id_with,
'objectb' => $objectb
);
$objecta = $this->session->userdata('objecta');
if ($objecta != $objectb)
{
echo '<script>var error = document.getElementById("message-validate")
error.innerHTML = "<span style=color: red;>"
"Your object didnt same with partial.</span>"
</script>';
} else {
$this->db->insert('box',$data);
}
Это мое мнение [ОБНОВЛЕНИЕ]:
<?php echo form_open('controllers/validate','class="form"');?>
<select name="objectb" id="objectb" class="form-control">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
<button type="submit" class="btn btn-primary" id="check">Check Object</button>
<button type="submit" class="btn btn-primary" id="add">Add Again</button>
<span id="message-validate" class="message-form"></span>
<?php echo form_close() ?>
В моем случае я хочу, чтобы пользователь в первый раз выбрал objecta
и objecta
сохранил сеанс с set_userdata
и для проверки данных. Если не то же самое с objectb
сообщением о проверке, отображаемым на странице просмотра, и если то же самое, то objecta
amp; objectb
сохранить в database
.
И с моим скриптом ничего не произошло
Комментарии:
1. Отправляете ли вы форму с использованием javascript и Ajax?
2. Нет, я просто использую javascript в своем контроллере, чтобы получить оповещение
3. Если вы отправляете форму «нормально» без ajax, тогда страница должна перезагрузиться, и из того, что я вижу в опубликованном контроллере, вы не возвращаете остальную часть HTML? Это должно просто сгенерировать пустую страницу? Или вы возвращаете полную страницу в остальной части кода, которую мы не видим?
4. Прежде чем я просто использую этот скрипт, я использую
//echo "<script>alert('Your object didnt same with partial')</script>;";
. И обычно отображается оповещение, но я хочу использовать span, а не alert box
Ответ №1:
Вы используете …
document.getElementById("message-validate")
… но «message-validate» — это класс элемента, а не его идентификатор:
<span class="message-form message-validate"></span>
Вы должны либо установить «message-validate» в качестве идентификатора диапазона:
<span id="message-validate" class="message-form"></span>
или получить элемент по его классу.:
var error = document.getElementsByClassName("message-validate")
Имейте в виду, что если вы решите выбрать элемент по его классу, то все элементы класса «проверка сообщения» будут отображать сообщение об ошибке на вашей странице.
Редактировать
Я бы попытался повторить сценарий отдельно:
echo "<script type='text/javascript'>"
echo "var error = document.getElementById('message-validate')"
echo "error.innerHTML = 'Error message';"
echo "</script>"
Комментарии:
1. @IvanBahri попробуйте выполнить отладку в вашем предпочтительном браузере. Кроме того, попробуйте повторить свой скрипт отдельно, как я отредактировал в ответе.