如何在Javascript中使用span从控制器向视图显示警报

如何在Javascript中使用span从控制器向视图显示警报,javascript,php,codeigniter,Javascript,Php,Codeigniter,我在脚本中发现了一个错误 我想调用alert javascript并在我的视图中显示span text。但我的剧本什么也没发生。从控制器上的警报看不到范围 这是我的控制器: public function validate_objectb() { $id_with = $_POST['id']; $objectb= $_POST['objectb']; $data = array( 'id' => $id_with, 'object

我在脚本中发现了一个错误

我想调用alert javascript并在我的视图中显示span text。但我的剧本什么也没发生。从控制器上的警报看不到范围

这是我的控制器:

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);
    }
公共函数验证\u objectb()
{
$id_with=$_POST['id'];
$objectb=$_POST['objectb'];
$data=数组(
“id”=>$id\u,
'objectb'=>$objectb
);
$objecta=$this->session->userdata('objecta');
如果($objecta!=$objectb)
{
echo'var error=document.getElementById(“消息验证”)
error.innerHTML=”“+
“你的目标与部分不一样。”
';
}否则{
$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() ?>
您正在使用

document.getElementById("message-validate")
…但“message validate”是元素的类,而不是元素的ID:

<span class="message-form message-validate"></span>
请记住,如果您决定按元素的类选择元素,那么所有“message validate”类元素都将在页面中生成错误消息

编辑

我会尝试分别回应脚本:

echo "<script type='text/javascript'>"
echo "var error = document.getElementById('message-validate')"
echo "error.innerHTML = 'Error message';"
echo "</script>"
echo“”
echo“var error=document.getElementById('message-validate')”
echo“error.innerHTML='错误消息';”
回声“”

您是否使用javascript和Ajax提交表单?不,如果您“正常”提交表单,我只是在控制器中使用javascript获取警报如果没有ajax,那么页面应该重新加载,从我在发布的控制器中看到的情况来看,您不返回HTML的其余部分?这应该只生成一个空白页面?或者您是在我们看不到的代码的其余部分返回完整页面?在我使用This脚本之前,我使用
//echo“alert('您的对象与partial不一样');”;
。通常会显示警报,但我想使用span而不是alertbox@IvanBahri尝试在首选浏览器上调试。另外,尝试在我在答案中编辑脚本时单独回显脚本。
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>"