将变量从Javascript/JQuery传递到PHP
我还是JQuery新手,正在尝试学习如何在不刷新页面的情况下提交表单。。。 我想要的是,在提交表单时,我在“headline”和“subheadline”上键入的值可以传递到php变量中(这样我就可以将数据回送/插入数据库等) 所以,我把将变量从Javascript/JQuery传递到PHP,php,jquery,ajax,variables,Php,Jquery,Ajax,Variables,我还是JQuery新手,正在尝试学习如何在不刷新页面的情况下提交表单。。。 我想要的是,在提交表单时,我在“headline”和“subheadline”上键入的值可以传递到php变量中(这样我就可以将数据回送/插入数据库等) 所以,我把 "<? echo $_POST['headline']; ?>" “” 在 您的更改已保存! 但当我填写表单并单击提交按钮时,它只显示“您的更改已保存!”。也就是说,变量不能传递给PHP HTML和JS组合成一个文件。我将URL方法保留在.
"<? echo $_POST['headline']; ?>"
“”
在
您的更改已保存!
但当我填写表单并单击提交按钮时,它只显示“您的更改已保存!”。也就是说,变量不能传递给PHP
HTML和JS组合成一个文件。我将URL方法保留在.ajax上,因为它是在同一个文件中处理的
HTML表单
<div id="submit-form">
<form action="" id="select-block" class="general-form">
<div class="input-wrap">
<input class="clearme" name="Headline" value="Your headline here" id="headline"/>
</div>
<div class="input-wrap">
<textarea class="clearme" name="Sub-Headline" id="subheadline">Sub Headline Here</textarea>
</div>
<input type="submit" class="submit-btn" value="SAVE" />
<span class="save-notice">Your change has been saved! <? echo $_POST['headline']; ?></span>
</form>
</div>
这里的副标题
您的更改已保存!
和JQUERY代码
<script type="text/javascript">
$(function() {
$(".save-notice").hide();
$(".submit-btn").click(function() {
var headline = $("input#headline").val();
var subheadline = $("textarea#subheadline").val();
var dataString = 'headline='+ headline + '&subheadline=' + subheadline;
alert(dataString)
$(".save-notice").hide();
$.ajax({
type: "POST",
url: "",
data: dataString,
success: function() {
$(".save-notice").show();
}
});
return false;
});
});
</script>
$(函数(){
$(“.save notice”).hide();
$(“.submit btn”)。单击(函数(){
var headline=$(“输入标题”).val();
var副标题=$(“textarea#subheadline”).val();
var数据字符串='标题='+标题+'&副标题行='+副标题行;
警报(数据字符串)
$(“.save notice”).hide();
$.ajax({
类型:“POST”,
url:“”,
数据:dataString,
成功:函数(){
$(“.save notice”).show();
}
});
返回false;
});
});
我在网上看到了几个例子/教程,如果可以这样做的话。您能提出建议吗?您的
保存通知中的$\u POST['headline']
是在加载页面时生成的。PHP运行,并输出一个HTML文件
当您发出AJAX请求时,返回到AJAX调用的页面将包含您的新值,但当前页面不包含
您可以发布到另一个页面,让该页面返回一个值,然后使用JavaScript更改div的值
或者,您可以尝试从返回的HTML页面提取数据
$(".save-notice").hide();
$.ajax({
type: "POST",
url: "",
data: dataString,
dataType: 'html', // the page returned
success: function(data) {
// get the data from the returned page
$(".save-notice").html($('.save-notice', data).html());
$(".save-notice").show();
}
});
看
而不是添加代码来单击处理程序
$(".submit-btn").click(function() { ... }
使用提交处理程序
$("#select-block").submit(function() {
// your code
var dataString = $(this).serialize();
});
您已经在javascript变量中设置了值:
var headline = $("input#headline").val();
var subheadline = $("textarea#subheadline").val();
您可以这样做:
$.ajax({
type: "POST",
url: "foo.php",
data: {headline: headline, subheadline: subheadline},
success: function() {
$(".save-notice").show();
}
});
$.post("foo.php", { headline: headline, subheadline: subheadline },
function(data) {
$(".save-notice").show();
}
);
或者像这样:
$.ajax({
type: "POST",
url: "foo.php",
data: {headline: headline, subheadline: subheadline},
success: function() {
$(".save-notice").show();
}
});
$.post("foo.php", { headline: headline, subheadline: subheadline },
function(data) {
$(".save-notice").show();
}
);
您可以看到,数据在键值对中传递:
{headline:headline,subheadline:subheadline}
您可以使用$\u POST
访问它,比如$\u POST['headline']
和$\u POST['subheadline']
使用Firebug的控制台功能,您可以看到服务器对AJAX调用的响应。响应是像您希望的那样评估$\u POST变量,但是由于AJAX调用发生在幕后,所以您看不到它
要使脚本在不做太多修改的情况下工作,请尝试以下方法(不需要PHP):
将
替换为
插入$('#yourheadline').html(headline)代码>在$(“.save notice”).show()之前的行上代码>
我建议的另一件事是序列化表单以创建dataString变量,而不是逐个输入。如果您的输入被命名为headline
和subheadline
而不是headline
和subheadline
var dataString = $("#select-block").serialize();
…将完成与以下相同的任务:
var headline = $("input#headline").val();
var subheadline = $("textarea#subheadline").val();
var dataString = 'headline='+ headline + '&subheadline=' + subheadline;
嗨,rkm,我如何获得PHP变量上使用的数据?问题已经解决了。实际上可以传递该值。在那一页上也没有回音