Javascript 如何使用jQuery将多个变量传递给PHP
好的,伙计们,希望你们也能帮我解决这个问题。我对jQuery和AJAX没有太多的了解,可能我遗漏了一些非常简单的东西。我无法传递超过1个变量。我试过几种不同的方法,其中最接近我的工作是,但即使这样也不起作用 jQueryJavascript 如何使用jQuery将多个变量传递给PHP,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,好的,伙计们,希望你们也能帮我解决这个问题。我对jQuery和AJAX没有太多的了解,可能我遗漏了一些非常简单的东西。我无法传递超过1个变量。我试过几种不同的方法,其中最接近我的工作是,但即使这样也不起作用 jQuery $("#bodymes ul li span[contenteditable=true]").blur(function(){ var weight_id = $(this).attr("id") ; var weightbody
$("#bodymes ul li span[contenteditable=true]").blur(function(){
var weight_id = $(this).attr("id") ;
var weightbody_mes = $(this).text() ;
$.post( "../includes/bodymes_weight.php", { weightbodymes: weightbody_mes })
.done(function( data ) {
$(".weightsuccess").slideDown(200);
$(".weightsuccess").html("Weight Updated successfully");
if ($('.weightsuccess').length > 0) {
window.setTimeout(function(){
$('.weightsuccess').slideUp(200);
}, 4000);
}
// alert( "Data Loaded: " + data);
});
});
所以基本上,如果我运行它,它会工作得非常好,我的PHP脚本会处理它。请注意,当我启动并启用警报并显示加载的数据时,它会显示正确的信息(信息来自weightbodymes
),并且我能够更新数据库。但只要我添加另一个变量{weightbodymes:weightbodymes,weightid:weightid\u id}
,它就不会显示在警报框中加载的数据(如果我试图显示两个变量的信息,它正在工作,但它只向PHP提交一个变量,即:
$weightid = $_POST['weightid'];
$weight = $_POST['weightbodymes'];
if ($insert_stmt = $mysqli->prepare("UPDATE body SET body_weight=? WHERE body_id='$weightid'")) {
$insert_stmt->bind_param('s', $weight);
// Execute the prepared query.
if (! $insert_stmt->execute()) {
header('Location: ../index.php?error=Registration failure: INSERT nwprogram1');
}
}
希望你能告诉我哪里出了错,以及如何改正。
提前谢谢!使用JS/JQUERY发布AJAX请求。下面是我所有AJAX调用使用的语法
var first = 'something';
var second = 'second';
var third = $("#some_input_on_your_page").val();
///////// AJAX //////// AJAX //////////
$.ajax({
type: 'POST',
url: 'page_that_receives_post_variables.php',
data: {first:first, second:second, third:third},
success: function( response ){
alert('yay ajax is done.');
$('#edit_box').html(response);//this is where you populate your response
}//close succss params
});//close ajax
///////// AJAX //////// AJAX //////////
接收变量的PHP页面的代码。PHP
<?php
$first = $_POST['first'];
$second = $_POST['second'];
$third = $_POST['third'];
echo 'now do something with the posted items.';
echo $first; //etc...
?>
向数据添加更多属性对象:{weightbodymes:weightbodymes,weightid:weightbodid,foo:'bar'}
发送类似以下内容{'data':{'var\u 1':'value1','var\u 2':'value2'}
。然后通过$\u POST['data'['var\u 1'],$\u POST['data'['var\u 2']
这应该是您想要的答案,我尝试了第一个和第三个答案,但似乎不起作用。我会再尝试几次。谢谢!嗯……这似乎是一个解决方案,但由于某种原因它不起作用,它仍然只传递一个变量。因此,例如,在一个响应中,我只获得了权重体mes
,尽管我通过了我的数据行中的两个变量如下:data:{weightid:weight\u id,weightbodymes:weightbody\u mes,third:third},
(我离开了第三个元素并分配了变量,但没有尝试用PHP调用它)。还有其他建议吗?我是为了配合你的解决方案而提出的。我也投了赞成票。谢谢!@Stephen Carr问题是什么?为了调试,在你在ajax中使用post变量之前,只需提醒(你的_变量),这样你就可以看到你是否真的得到了什么。通常对我有帮助。我使用了alert()并给了我正确的信息,但问题是PHP,因为我有if语句,我在这个问题中发布的部分是“else”的一部分,在if和else中,当我尝试不同的解决方案时,我放置了相同的变量,但忘了更改它,所以它导致错误的记录更新和一大堆其他混乱。再次感谢!@Stephen Carr