Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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 提交为空或提交的json解码失败。如何在表单中提交textarea_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 提交为空或提交的json解码失败。如何在表单中提交textarea

Javascript 提交为空或提交的json解码失败。如何在表单中提交textarea,javascript,jquery,ajax,Javascript,Jquery,Ajax,现在我得到了这个错误:“警告:json_decode()希望参数1是字符串,数组在第31行的/var/www/my_-website/challenge/ajax.php中给出 提交为空或提交的json解码失败“ 为什么在我执行JSON.stringify将其转换为字符串时,它会说给定了一个数组?将提交按钮更改为type=“button”,这样它就不会提交表单,它只是运行您的函数 在AJAX调用中,使用JSON.stringify()将textarea的值转换为JSON 函数getText()

现在我得到了这个错误:“警告:json_decode()希望参数1是字符串,数组在第31行的/var/www/my_-website/challenge/ajax.php中给出
提交为空或提交的json解码失败“


为什么在我执行JSON.stringify将其转换为字符串时,它会说给定了一个数组?

将提交按钮更改为
type=“button”
,这样它就不会提交表单,它只是运行您的函数

在AJAX调用中,使用
JSON.stringify()
将textarea的值转换为JSON

函数getText(){ $.ajax('ajax.php?提交=%7B%7D'{ 数据:{ 提交:JSON.stringify($('#text1').val()) }, 成功:功能(数据){ 成功回调(数据); console.log(“成功”+数据); }, 错误:函数(xhr、状态、错误){ 警报(错误); }, 类型:“POST” }) }

在下面输入SQL查询:


您没有在AJAX请求中发送
$(“#text1”).val()
#blogsmit
应该是
#text1
。您还需要防止默认表单提交。您发送了两次:一次是通过AJAX,然后是通过正常提交。错误消息还表明它希望参数采用JSON格式,但
$。AJAX
发送URL编码格式。@Barmar谢谢您,先生。针对您的第三条评论,我希望提交ajax,对吗?如何防止默认表单提交并使用ajax oneBetter运行
事件的
onsubmit
。preventDefault()。有些浏览器在按Enter键时提交,只有在有提交按钮时才会提交。
<p><h3>Enter your SQL query below:</h3>
<form method="post" action="http://212.47.247.139/challenge/ajax.php?submission=%7B%7D" id="my-form">
    <textarea id='text1' class='sql' name='submission' rows=10 cols=120></textarea>
    <input type="submit" id="blogSubmit" onclick="getText()">
    <br>
</form>
</p>
<script>
    function getText() {
        // var str=document.getElementById("text1").value;
        // alert(str + "i did it");

        $.ajax('ajax.php?submission=%7B%7D', {
                    data: {submission: $('#text1').val()},
                    success: function(data) {
                        success_callback(data);
                        console.log("success " + data);
                    },
                    error: function(xhr, status, error) {
                        alert(error);
                    },
                    type: 'POST'
                })
    }
</script>
   <p><h3>Enter your SQL query below:</h3>
    <form method="post" action="http://212.47.247.139/challenge/ajax.php?submission=%7B%7D" id="my-form">
        <textarea id='text1' class='sql' name='submission' rows=10 cols=120></textarea>
        <input type="button" id="blogSubmit" onclick="getText()">
        <br>
    </form>
    </p>
    <script>
        function getText() {
            // var str=document.getElementById("text1").value;
            // alert(str + "i did it");
    
            $.ajax('ajax.php?submission=%7B%7D', {
                        data: {submission: { prop: JSON.stringify($("#text1").val())}},
                        success: function(data) {
                            success_callback(data);
                            console.log("success " + data);
                        },
                        error: function(xhr, status, error) {
                            alert(error);
                        },
                        type: 'POST'
                    })
        }
</script>