我们可以直接从html中的表单操作调用php:
<form name='x' action = "filename.php">
在这种情况下,php 将接收表单中的所有输入,即使我们不传递它们。
我们可以从html中的表单 Action 中调用js函数吗?
<form name='x' action = "javascript:jsFunction();">
然后,从js函数中调用php?
jsFunction()
{ var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("result").innerHTML = xhttp.responseText;}
};
xhttp.open("POST", filename.php, true);
xhttp.send();
}
提示 我无法使用 onsubmit,因为它会将我从平台注销。换句话说,它从登录页面的开头重新加载平台。 我正在从事集成工作,但对该平台没有清晰的想法。
编辑1:
现在,在 HTML 文件中:
<form enctype='multipart/form-data' id = "myform">
<input type='submit' value='Basic search' onclick = "i2b2.BLAST.jsFunction();">
JS文件:
i2b2.BLAST.jsFunction = function ()
{
var myForm = document.getElementById('myForm');
myForm.addEventListener('submit', function(event)
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
document.getElementById("result").innerHTML = xhttp.responseText;
}
};
xhttp.open("POST", blastresult.php, true);
xhttp.send();
event.preventDefault();
});
}
它从登录页面的开头重新加载平台!
编辑2:
我设置了一些警报来查看按钮是否调用了 javascript。
i2b2.BLAST.jsFunction = function ()
{
alert('hi');
this.yuiTabs = new YAHOO.widget.TabView("BLAST-TABS", {activeIndex:1});//this two lines navigate to second tab
this.yuiTabs.set('activeIndex', 1);
alert('hi');
myForm.addEventListener('submit', function()
{
alert('hi');
preventDefault();
按钮调用 js 并显示第一个“hi”,然后导航到第二个选项卡,然后重新加载页面。它停在第二个“hi”处。
非常感谢任何帮助。 谢谢。
最佳答案
是的,你可以,首先给你的表格一个ID
<form id="myForm"></form>
然后在 javascript 中试试这个:
var myForm = document.getElementById('myForm');
myForm.addEventListener('submit', function(e)
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
document.getElementById("result").innerHTML = xhttp.responseText;
}
};
xhttp.open("POST", filename.php, true);
xhttp.send();
e.preventDefault();
});
关于javascript - 从表单操作调用js函数,然后从js调用php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562744/