【问题标题】:Passing form variable to php using JSON使用 JSON 将表单变量传递给 php
【发布时间】:2014-12-06 09:18:40
【问题描述】:

我正在使用以下代码,我需要从 php.ini 访问表单文本框的输入值。表单不是通过表单标签直接提交给服务器的。该按钮正在调用一个 JS 函数。我需要从 php 代码访问名为 stName 的输入文本框。如何将此信息传递给 php 并从那里访问它?谢谢。

<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="jquery.mobile-1.4.4.min.css">

<script src="jquery-1.11.1.min.js"></script>
<script src="jquery.mobile-1.4.4.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script charset="utf-8" type="text/javascript">
function connect()
{   
    $.ajax({
        url:'hostname/reply.php',
        headers:{"Content-Type": "application/json"},
        type:'POST',
        data:$(this),
        dataType:'JSON',
        error:function(jqXHR,text_status,strError){
            alert(strError);},
        timeout:60000,
        success:function(data){
            $("#result").html("");
                for(var i in data){
                $("#result").append("<li>"+data[i]+"</li>");                    
                }
            }
        });     
} 
</script>
</head>
<body>
<center><b>My Students</b></center>
<center>
<form method="POST">
<input type="text" value="John" name ="stName" />
<input onclick="connect()" type="button" value="showStudents" />
</form>
</center>
<center><b>Results</b></center>
<ul data-role="listview" id="result"></ul>
</body>
</html>

【问题讨论】:

    标签: javascript php jquery json forms


    【解决方案1】:

    serialize表单数据..

    把你的连接函数改成这个

    function connect()
    {   
        $.ajax({
            url:'hostname/reply.php',
            headers:{"Content-Type": "application/json"},
            type:'POST',
            data:$('form').serializeArray(),
            dataType:'JSON',
            error:function(jqXHR,text_status,strError){
                alert(strError);},
            timeout:60000,
            success:function(data){
                $("#result").html("");
                    for(var i in data){
                    $("#result").append("<li>"+data[i]+"</li>");                    
                    }
                }
            });     
    }
    

    或者你可以像这样压缩你的代码..

    function connect()
    {   
        $.post('hostname/reply.php', $('form').serialize(), function(data){
             $("#result").html("");
                    for(var i in data){
                    $("#result").append("<li>"+data[i]+"</li>");                    
                    }
                }
        });
    } 
    

    【讨论】:

    • 谢谢 Azi 和 michaelcurry。如何从 php 访问表单输入值?
    • 我正在尝试这个 php 代码,但它不起作用:$data = json_decode($_POST['data'], true); $消息[] = $数据;打印 json_encode($message);
    • 做一些调试。并在reply.php 中转储$_POSTreply.php 中添加这一行,然后查看页面接收到的数据var_dump($_POST); exit;
    【解决方案2】:

    您需要使用消毒功能。 data:$( "form" ).serialize()

    尊敬的功能:http://api.jquery.com/serialize/


    我还发现了这个 StackOverflow,它讨论了如果您遇到问题如何构建 ajax 请求。 Submit form using AJAX and jQuery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-11
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      相关资源
      最近更新 更多