Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Php 使用json传递输入字段类型和值_Php_Jquery - Fatal编程技术网

Php 使用json传递输入字段类型和值

Php 使用json传递输入字段类型和值,php,jquery,Php,Jquery,我想传递输入字段类型和该输入字段的值。到目前为止,我成功地将输入字段的值获取到adddata.php。但是我找不到获取输入字段类型的方法。请帮忙。 这是我的密码 <html lang="en"> <head> <meta charset="utf-8"> <title>attr demo</title> <script src="jquery.js"></script> </hea

我想传递输入字段类型和该输入字段的值。到目前为止,我成功地将输入字段的值获取到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;
?>
试试-

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


提交表单时,从未使用代码进行ajax调用。表单中没有所谓的类型。这就是为什么会出现错误。而且,在encode之后,您还缺少一个:true。

您不需要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
});

为什么?告诉我们您为什么需要该类型?我想让用户在表单中添加自定义的输入字段,如文本框字段、日期字段等。一旦他们添加了数据,它应该保持在表单中。所以,要根据所选的输入字段从数据库中检索数据,我需要这个。例如,如果一个用户数据选择了日期字段并选择了一个日期,我希望在该字段中以日期字段的形式显示,而不是以文本框的形式显示。希望你明白了。你的代码应该可以工作。。。检查是否已将type属性添加到输入字段。不要忘记,$'input'将匹配所有输入字段-尝试使用更具体的东西,例如$'id'显示从第1行到第15行的所有PHP,它对值有效,但为输入类型提供了一个错误。注意:未定义的索引:在adddata.PHP的第10行的C:\xampp\htdocs\column\adddata.PHP中键入C:\xampp\htdocs\column\adddata.PHP$类型=$_请求['type']@ADHEESA23更新了答案。我已经在输入字段中添加了文本类型。是的,它以文本形式显示警报,但不会转到adddata.php。这是否意味着在检索时php代码存在问题。除非您没有向我们展示所有内容-不,应该可以-编辑您的问题添加HTML或生成表单的JS以及所有相关的php代码也尝试使用$_POST['type']来代替。请澄清一下-您是否提交表单?在页面切换到appdata后,您得到了错误???或者这是在ajax调用中发生的?因为我没有看到任何关于ajax或preventDefault的调试…是的,我正在提交表单,并且在adddata.php中给出了错误。
$('form').submit(function() {
    // Before submit
    $(this).prepend(
     '<input type="hidden" name="type" value="'+$('input').attr('type')+'" />'
    );
    return true; // return false to cancel form action
});