【问题标题】:send value of form -ajax/php/mysql [closed]发送表单-ajax/php/mysql的值[关闭]
【发布时间】:2014-02-27 04:55:14
【问题描述】:

我想将表单的元素发送到数据库(使用 php ajax 但没有 jquery)

所以我从 w3schools.com 找到了这些教程

http://www.w3schools.com/php/php_ajax_database.asp

教程发送一个元素的值...(没有提交按钮) 但现在我想通过单击提交按钮发送所有元素的值:

<form>
 <input name="name1" type="text">
 <input name="name1" type="text">
 <input  type="submit" value>
</from>

如何将name1和name2的值发送到“getuser.php”?

tnx

【问题讨论】:

  • 这不能回答你的问题,但 w3schools 是一个非常糟糕的资源。详情请查看W3Fools
  • 移除
    标签并添加事件处理程序并提交应该是一个按钮
  • 你可能没有使用 jQuery,但你不能在没有 javascript 的情况下使用 AJAX(异步 JavaScript 和 XML)
  • 结束标签也是错误的 - 它说
  • 这不是你应该问的,然后复制粘贴解决方案。这是应该通过阅读一些教程(不仅仅是示例)来解决的问题,因为它太基础了,这表明您还没有以结构化的方式学习基础知识。

标签: javascript php ajax forms form-submit


【解决方案1】:

使用这个脚本

<script type="text/javascript">
        function loadXMLDoc() {
            var xmlhttp;
            var val=document.getElementById('name1').value;

            var val1=document.getElementById('name2').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("display").innerHTML = xmlhttp.responseText;
                    console.log(xmlhttp.responseText);

                }
            }

            xmlhttp.open("GET", "getuser?value="+val+"&value2="+val1, true);
            xmlhttp.send(null);
        }


    </script>

在你的 html 中

 <form>
     <input id="name1" type="text">
     <input id="name2" type="text">
    <input type="button" value="submit" onclick='loadXMLDoc()'/>
    </from>

<div id="display">
//to show the response
</div>

【讨论】:

  • 感谢 Nambi Narayanan。它有效。
  • @user2726957 如果真的对你有帮助,请接受我的回答
【解决方案2】:

你可以在提交表单时调用一个javascript函数

<form id="tt" onsubmit="return sendValues('getuser.php', this.id);">
    ...

以下函数应将这些值(编码)发送到getuser.php

function sendValues(destination, formID) {
    var xmlhttp;
    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) {
            if (xmlhttp.status === 200) {
                // Successful call to the back-end
            }
            else {
                // There was a server error
            }
        }
    };

    var form = document.getElementById(formID);
    if (form !== null) {
        var args = '';
        var elements = form.elements;
        for (var i = 0, c = elements.length; i < c; i++) {
            if (i !== 0) {
                args += "&";
            }
            args += encodeURIComponent(elements[i].name) + "=" + encodeURIComponent(elements[i].value);
        }


        xmlhttp.open("POST", destination, true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send(args);
    }
    else {
        console.log("Error: This form ID does not exist.");
    }
    return false;
}

要在没有 Ajax 的情况下将输入值发送到另一个页面,您可以在表单元素中使用 'action' 属性。

<form method="post" action="getuser.php">
    ...

【讨论】:

  • 啊,废话。我会更新我的答案。
  • @aksu - 更新了我的答案以实际使用 Ajax。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多