javascript - 从表单操作调用js函数,然后从js调用php

标签 javascript php jquery html

我们可以直接从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/

相关文章:

javascript - 单击 Go 按钮后如何停止 <select> 选项的重置

php - 您将如何使用 PHPUnit 测试包含 check_admin_referer() 的 Wordpress 函数?

php - YouTube获取所有播放列表

c# - 从 JsonResult 中检索对象列表并发送到数据库

javascript - 操作 mongodb 查询中的列表

javascript - Angularjs ng-if 不工作

javascript - 相对于 div 提取数据的“最佳”方式?

PHP将jpg图像分割成两个相等的图像并保存

jquery - 使用 jQuery 计算元素的不透明度

javascript - 加载时修改模态窗口中的数据