Javascript Ajax不通过POST
我有一个表单,需要将数据发布到compute.php文件中。 我必须传递两个select字段的内容,分别名为select_1和select_2。 我的fire按钮有一个onclick='go()'调用 我的脚本代码如下:Javascript Ajax不通过POST,javascript,php,ajax,post,Javascript,Php,Ajax,Post,我有一个表单,需要将数据发布到compute.php文件中。 我必须传递两个select字段的内容,分别名为select_1和select_2。 我的fire按钮有一个onclick='go()'调用 我的脚本代码如下: function go() { var sel_1 = document.getElementById('select_1').value; var sel_2 = document.getElementById('select_2').value; $.ajax({
function go() {
var sel_1 = document.getElementById('select_1').value;
var sel_2 = document.getElementById('select_2').value;
$.ajax({
type: "POST",
url: "compute.php",
data: "select_1=" + sel_1 + "&select_2=" + sel_2,
dataType: "text",
success: function(data,status)
/* ------------ for debug I have an alert with a response ---- */
{
alert("passed data are: " + data + "\nStatus: " + status);
},
error: function(data,status)
{
alert("passed data are: " + data + "\nStatus: " + status);
}
});
}
$selection_1 = $_POST["select_1"];
$selection_2 = $_POST["select_2"];
$sqladd = "INSERT INTO table SET column_1 = '$selection_1', column_2 = '$selection_2';";
if (mysqli_query($conn, $sqladd)) {
$resultadd= mysqli_query($conn, $sqladd);
// ------- then for debug purpose
echo "inserted row with col_1 --->" . $selection_1 . "<--- and col_2 --->" . $selection_2;
} else {
// ------- either, still for debug purpose
echo "not inserted. ";
echo "Error: " . mysqli_error($conn);
}
在php端,我的compute.php文件包含如下代码:
function go() {
var sel_1 = document.getElementById('select_1').value;
var sel_2 = document.getElementById('select_2').value;
$.ajax({
type: "POST",
url: "compute.php",
data: "select_1=" + sel_1 + "&select_2=" + sel_2,
dataType: "text",
success: function(data,status)
/* ------------ for debug I have an alert with a response ---- */
{
alert("passed data are: " + data + "\nStatus: " + status);
},
error: function(data,status)
{
alert("passed data are: " + data + "\nStatus: " + status);
}
});
}
$selection_1 = $_POST["select_1"];
$selection_2 = $_POST["select_2"];
$sqladd = "INSERT INTO table SET column_1 = '$selection_1', column_2 = '$selection_2';";
if (mysqli_query($conn, $sqladd)) {
$resultadd= mysqli_query($conn, $sqladd);
// ------- then for debug purpose
echo "inserted row with col_1 --->" . $selection_1 . "<--- and col_2 --->" . $selection_2;
} else {
// ------- either, still for debug purpose
echo "not inserted. ";
echo "Error: " . mysqli_error($conn);
}
他们能挡住柱子吗?如果是,如何在不阻塞POST的情况下获得相同的结果?我需要从外部将/dir/foo.php重定向到/dir/foo,从内部将/dir/foo重定向到/dir/foo.php。尝试修改go函数,如下所示:
function go() {
var sel_1 = document.getElementById('select_1').value;
var sel_2 = document.getElementById('select_2').value;
$.ajax({
method: "post",
url: "compute.php",
data: {"select_1":sel_1 , "select_2":sel_2},
success: function(data,status)
/* ------------ for debug I have an alert with a response ---- */
{
alert("passed data are: " + data + "\nStatus: " + status);
},
error: function(data,status)
{
alert("passed data are: " + data + "\nStatus: " + status);
}
});
}
尝试将go函数修改为如下所示:
function go() {
var sel_1 = document.getElementById('select_1').value;
var sel_2 = document.getElementById('select_2').value;
$.ajax({
method: "post",
url: "compute.php",
data: {"select_1":sel_1 , "select_2":sel_2},
success: function(data,status)
/* ------------ for debug I have an alert with a response ---- */
{
alert("passed data are: " + data + "\nStatus: " + status);
},
error: function(data,status)
{
alert("passed data are: " + data + "\nStatus: " + status);
}
});
}
在go函数的ajax中修改数据对象
数据:{“选择1”:选择1,“选择2”:选择2}在go函数的ajax中修改您的数据对象
数据:{“选择1”:选择1,“选择2”:选择2}您的选择框必须那样锁定
<select id="select_1">
<option></option></select>
</select>
我认为您选择的框名为select_1和select_2,但您必须设置id而不是名称
p、 s如果您使用id,请粘贴html代码。您的选择框必须那样锁定
<select id="select_1">
<option></option></select>
</select>
我认为您选择的框名为select_1和select_2,但您必须设置id而不是名称
p、 s如果您使用id,请粘贴您的html代码。POST被上述.htaccess指令阻止。已更改,现在POST可以从html开始工作,但在将数据发布到compute时使js/ajax/jquery工作仍然存在问题。phpPOST被.htaccess指令阻止,如上所述。已更改,现在POST可以从html开始工作,但在将数据发布到compute.php时,让js/ajax/jquery工作仍然存在问题。我建议不要将参数嵌入SQL,而是使用准备好的语句,使用?让mysql为您插入参数,看看这是以后要做的细化工作之一,但问题是php不会从ajax接收这些post数据。您是否尝试过使用post方法在页面中创建HTML表单元素并尝试过以这种方式提交?现在根据您的请求在HTML中尝试。Hmmmm…,结果相同,数据未通过。但也要用js检查,表单是有效的,并且源页面中的变量已填充。糟糕的谜题:(在你的PHP中添加一些echo,这样你就可以验证它是否到达服务器了?我建议不要在SQL中嵌入你的参数,而是使用准备好的语句?并让mysql为你插入参数,看看这是以后要做的细化工作之一,但问题是PHP没有从服务器接收这些post数据。)jax.您是否尝试过使用post方法在页面中创建HTML表单元素并尝试过以这种方式提交?现在根据您的请求在HTML中尝试。Hmmmm…,相同的结果,数据未传递。但也使用js进行了检查,表单有效,并且源页面中的变量已填充。错误的谜题:(在PHP中添加一些echo,以便您可以验证它是否到达服务器?您是否检查了是否收到了POST?现在用代码检查:if(isset($_POST['select_1']){echo“received select_1.”;}否则{echo“NOT received select_1”;}和get NOT:(你是否以某种方式使用了重定向方法?你是否尝试实际提交html表单?是的,刚才也是一样的负面结果。我在哪里可以调查?你是否检查了你是否收到了帖子?现在检查代码:if(isset($_POST['select_1']){echo“received select_1.”}else{echo“NOT received select_1”}并且没有:(您是否以某种方式使用了重定向方法?您是否尝试实际提交html表单?是的,刚才的结果是否定的。我可以在哪里进行调查?只是尝试了您的建议。相同的结果,compute.php中没有出现POST值:(可能是任何与数据类型相关的内容?或其他内容?请在您的答案中添加一些解释,以便其他人可以从中学习。刚刚尝试了您的建议。相同的结果,compute.php没有任何POST值:(可能是与数据类型相关的内容?或其他内容?请在您的答案中添加一些解释,以便其他人可以从中学习
echo“”
为了实现跨版本兼容性,我总是同时设置id和名称。我检查了您的代码,似乎没有问题。您能尝试提交一个简单的表单(仅html和php)吗并转储结果?现在根据您的请求在HTML中尝试。相同的结果,数据不会传递。但也使用js进行检查,并且表单是有效的,并且源页面中的变量已被填充。正如已经检查过的,从phi.ini中:;enable_post_data_reading=Off
,正如您看到的,这一行被注释掉了,因此显然$\u post是可能的。并且post\u max\size=8M
还尝试在compute.php顶部添加:if(空($\u SERVER['CONTENT\u TYPE']){$\u SERVER['CONTENT\u TYPE']=“application/x-www-form-urlencoded”;
。但没有任何更改echo“”
为了实现跨版本兼容性,我总是同时设置id和名称。我检查了您的代码,似乎没有问题。您能尝试提交一个简单的表单(仅html和php)吗并转储结果?现在根据您的请求在HTML中尝试。相同的结果,数据不会传递。但也使用js进行检查,并且表单是有效的,并且源页面中的变量已被填充。正如已经检查过的,从phi.ini中:;enable_post_data_reading=Off
,正如您看到的,这一行被注释掉了,因此显然$\u post是可能的。并且post\u max\size=8M
还尝试在compute.php顶部添加:if(空($\u SERVER['CONTENT\u TYPE']){$\u SERVER['CONTENT\u TYPE']=“application/x-www-form-urlencoded”;
。但没有任何更改