Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript调用PHP文件_Javascript_Php_Html - Fatal编程技术网

从javascript调用PHP文件

从javascript调用PHP文件,javascript,php,html,Javascript,Php,Html,我有一个调用PHP函数的HTML表单,如下所示: <form action="test.php" method "get"> user data.. user data </form> 因此,我无法找到一种通过HTML直接实现这一点的方法。我从HTML中调用javascript,如下所示: 在myfunction()调用中, 我使用 var=document.getElementById('data')。值 现在,一旦用户输入被解析。我想获取所有表单数据并将其传递到P

我有一个调用PHP函数的HTML表单,如下所示:

<form action="test.php" method "get">
user data..
user data
</form>
因此,我无法找到一种通过HTML直接实现这一点的方法。我从HTML中调用javascript,如下所示:

myfunction()
调用中, 我使用

var=document.getElementById('data')。值

现在,一旦用户输入被解析。我想获取所有表单数据并将其传递到PHP文件,如:

if var==yes:
    action="test1.php" method="get"
if var==no:
    action="test2.php" method="get"
我浏览了其他建议Ajax调用的答案。
没有Ajax调用可以完成吗?

有两种方法:

  • 更改Javascript中动作的值
  • 您可以使用var的值创建一个

  • 使用第二种方法,您只需要一个php文件(test.php),如果
    $\u GET['var']==“yes”
    ,您可以执行操作1,否则操作2

    可以用php轻松完成

    Html:

    
    用户数据。。
    用户数据
    
    test.php:

    <?php
    if (isset($_GET["somefield"]) && $_GET["somefield"] == "yes")){
    header("Location:test1.php");
    exit;
    } else {
    header("Location:test2.php");
    exit;
    }
    ?>
    

    很抱歉问这个问题,为什么不使用AJAX调用呢?您只需编写以下代码并包括jQuery库:

    var req = $.ajax({url:"******.php"});
    
    但是,如果不想使用jQuery,可以将两个PHP类合并为一个类,并对每种情况使用if语句

    $a = $_GET['yourVar'];
    
    if ($a = 'yes') {
    ...
    } else { //i suppose that the variable is a yes/no boolean
    ...
    }
    

    请注意,将布尔值传递给PHP类会将其转换为字符串。

    最简单的方法是在元素上使用on change事件,在本例中是一个下拉菜单

    因此,当用户选择Yes时,action属性将是test1.php,如果用户选择No,则表单action属性将是test2.php。因此,当用户单击submit按钮时,它将重定向到指定的URL

    希望这有帮助

    $(函数(){
    $('#myvalue').change(函数(){
    var url='test1.php';
    if($(this.val()=='No'){
    url='test2.php';
    }
    $('#myform').attr('action',url);
    });
    });
    
    
    对
    不
    
    test.php
    处理这些选择似乎更符合逻辑,而不是处理两个单独的脚本。为什么您的输入有反斜杠?@NewToJS可能是重复的,因为“”用于反引号混合,并且没有突出显示文本
    方法“get”
    您意识到这是失败的,除非你发布的不是你真正的代码。关于
    方法“get”
    的事实,您需要解决这个问题。你犯了和OP一样的错误。并且在每个标题后面添加exit。@Fred ii-谢谢你指出,我甚至没有注意到这是他的html的副本
    var req = $.ajax({url:"******.php"});
    
    $a = $_GET['yourVar'];
    
    if ($a = 'yes') {
    ...
    } else { //i suppose that the variable is a yes/no boolean
    ...
    }