提交为空或提交的json解码失败.如何提交表单中的文本区域


<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>

我在一个表单中有一个文本区域,其中包含一些sql语句。我在表单中有一个提交按钮;http://212.47.247.139/challenge/ajax.php?submission=%7B%7D"使用ajax。

提交后,当我在网络选项卡下查看时,我看到表格数据中有我输入的内容,但我得到了一个"提交为空或提交的json解码失败";。我是ajax、html和javascript的新手。代替$('#blogSubmit').val(),我尝试了很多东西,比如JSON.stringify({ prop: $('#blogSubmit').val()

我做错了什么?

Barmer建议实施变更后的更新

<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>

现在我得到这个错误:">警告:json_decode((要求参数1为字符串,数组在第31行/var/my_website/schallenge/ajax.php中给定
提交为空或提交的json解码失败">

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

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

在AJAX调用中,使用JSON.stringify()将文本区域的值转换为JSON。

function getText() {
$.ajax('ajax.php?submission=%7B%7D', {
data: {
submission: JSON.stringify($('#text1').val())
},
success: function(data) {
success_callback(data);
console.log("success " + data);
},
error: function(xhr, status, error) {
alert(error);
},
type: 'POST'
})
}
<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>

最新更新