使用json传递输入字段类型以及值

时间:2015-04-29 10:42:16

标签: php jquery

我想传递输入字段类型以及该输入字段的值。到目前为止,我成功地将输入字段的值获取到adddata.php。但我找不到获取输入字段类型的方法。请帮忙。 这是我的代码。

<html lang="en">
<head>
    <meta charset="utf-8">
    <title>attr demo</title>

    <script src="jquery.js"></script>
</head>
<body>
    <form action="adddata.php">
    <input id="name" type="text" name="name">
    <button id="submit">Submit</button>
    </form>

<script>

   $(document).ready(function() {

            $('#submit').click(function(){
           $.ajax({
               type        : 'POST',
               url         : 'adddata.php',
               data        : {name:$('#name').val(),type:$('input').attr("type")},
               dataType    : 'json',
               encode          : true
               success:function(jsonData){
                   alert('Success!');
               }

           });
       });

   });
</script>
</body>
</html>

这是我的adddata.php文件

<?php
   $name = $_REQUEST['name'];
   $type = $_POST['type'];

   echo $name;
   echo $type;
?>

2 个答案:

答案 0 :(得分:0)

尝试 -

data : {name:"'"+$('#name').val()+"'",type:"'"+$('#name').attr("type")+"'"},

<强>更新

  $('#submit').click(function(){
       $.ajax({
           type        : 'POST',
           url         : '4.php',
           data        : {name:$('#name').val(),type:$('#name').attr("type")},
           dataType    : 'json',
           encode          : true,
           success:function(jsonData){
               // do staff
           }

       });
       return false;
   });

在表单提交时,从未使用代码进行ajax调用。表单中没有任何名为type的内容。这就是错误即将到来的原因。此外,您在,之后错过encode : true

答案 1 :(得分:0)

您提交表单后不需要ajax调用 - 删除脚本并替换为:

$('form').submit(function() {
    // Before submit
    $(this).prepend(
     '<input type="hidden" name="type" value="'+$('input').attr('type')+'" />'
    );
    return true; // return false to cancel form action
});