0

我尝试使用此下拉表单在页面上发送错误数据(电影信息)。此 html 代码是用户单击提交时发送的下拉表单,javascript 将 GET 数据发送到另一个 php 文件并在那里处理数据,但在表单数据放置的地方文本:“谢谢”

问题是:当我点击提交不起作用时,javascript 没有完成它的工作。

html:

<div id='premijera' class='neispravniPodaci'>Report wrong data
    <div id='neispravnaForma' class='arrow_box' >
            <form name='frm1' action='' onSubmit='neispravniPod()' method='get'>
            <input class='textbox'  type='text' name='forma' placeholder='input for wrong data'>
            <input type='submit' name='sendForm' value='Send'  class='button'>
            </form>
        </div>
</div>

而javascript代码是:

function neispravniPod()
{
var xmlhttp;
var forma=document.forms['frm1']['forma].value;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById('neispravnaForma').innerHTML='<t style=\"font-size:15px;font-weight:bold;color:black;\">Hvala!</t>';
    }
  }

xmlhttp.open('GET','glasanje.php?id=".$idfilm."&neispravno='+forma+'&ip=".$_SERVER["REMOTE_ADDR"]."&korisnik=".$userdata['user_id']."',true);
xmlhttp.send();
}
4

2 回答 2

1

就像 Rene 指出的那样,这很可能是一个 javascript 语法错误,即阻止 onSubmit 函数在实际提交之前启动。

建议在 jsfiddle 中尝试您的代码。

我在 xmlhttp.open 请求中看到 PHP 代码。您如何插入该代码?如果您只是尝试在 js 文件中使用该代码并期望客户端执行该代码,这可能是一个失败点(它只会吐出语法错误,因为 javascript 文件永远不会也不应该解释服务器端代码) .

另外,您是否考虑过使用 jQuery 或其他 js 库来帮助您编写更简洁的 ajax 请求?

编辑答案(根据下面的评论):

不确定文件其余部分的 PHP 是什么,但这是我在本地使用和测试的内容,以确保它可以正常工作。更正了一些语法错误,同样在 PHP 端,输出变量的方式。将此代码粘贴到您的 index.php 文件或您正在使用的任何文件中:

<div id='premijera' class='neispravniPodaci'>Report wrong data
    <div id='neispravnaForma' class='arrow_box'>
        <form name='frm1' action='javascript:neispravniPod();' method='get'>
            <input class='textbox' type='text' name='forma' placeholder='input for wrong data'>
            <input type='submit' name='sendForm' value='Send' class='button'>
        </form>
    </div>
</div>

<script type="text/javascript">
    function neispravniPod() {
        var xmlhttp;
        var forma = document.forms.frm1.forma.value;
        if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById('neispravnaForma').innerHTML = '<t style=\"font-size:15px;font-weight:bold;color:black;\">Hvala!</t>';
            }
        };

        xmlhttp.open('GET', 'glasanje.php?id=<?php echo $idfilm ?>&neispravno='+forma+'&ip=<?php echo $_SERVER["REMOTE_ADDR"] ?>&korisnik=<?php echo $userdata['user_id'] ?>', true);
        xmlhttp.send();
    }       
</script>
于 2013-03-03T13:51:18.100 回答
0

我要做的第一件事是检查 javascript,好像脚本中有很多错误......我喜欢在 jsbin.com 中检查我的脚本......只需打开 javascript 面板并将脚本粘贴到那里......我在你的脚本中发现了 33 个警告……点击:http: //jsbin.com/oqiliq/1/edit

于 2013-03-03T13:38:28.333 回答