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