javascript使用get方法发送表单

时间:2013-03-03 13:33:34

标签: javascript html forms get send

我尝试使用此下拉表单在页面上发送错误数据(电影信息)。这个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();
}

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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