然而我不知道的是如何用jquery调用那个php文件并移交一个变量。
移交变量可能适用于 isset()...
如何从jquery调用此PHP邮件程序并从用户那里执行该HIDDEN。因此,不应该弹出一个新窗口,不应该是页面刷新或类似的东西。
$('a.report').click(function(e) {
e.preventDefault();
var id = $(this).attr('href');
//call mail script and pass along the "id" variable
//change text (maybe in a callback function IF THE MAILING WAS A SUCCESS.
$(this).parent().text('Thank you for reporting.');
})
所以我有这个a.report链接应该触发电子邮件脚本。在我的电子邮件脚本中,我需要访问jquery中设置的“id”变量。如果php脚本执行了这个操作,那么拥有一个回调函数会更好,所以我可以输出“谢谢你报告”。
怎么做?
谢谢你们。
答案 0 :(得分:1)
我会使用$.post()
:
<script type='text/javascript'>
$(function(){
function onReportPosted(data) {
// data.status - either 'error' or 'success', from mailer.php
// data.message - some text, from mailer.php
$('.result').text(data.message);
}
$('a.report').click(function(e) {
$('.result').text('sending report...');
var data = {
text: $('textarea[name=text]').val()
};
$.post(
'mailer.php',
data,
onReportPosted,
'json'
);
return false;
});
});
</script>
在mailer.php
:
<?php
if ( isset($_POST['text']) ) {
// mail()...
$result = array(
'status' => 'success',
'message' => 'thank you for reporting',
);
} else {
$result = array(
'status' => 'error',
'message' => 'some error occurred',
);
}
header('Content-Type: application/json');
echo json_encode($result);
exit;
更新:这是一种如何将回调“绑定”到特定元素的方法:
<script type='text/javascript'>
$(function(){
$('a.report').click(function(){
var htmlElement = $(this).parent();
var data = {
// ...
};
$.post(
document.location.toString(),
data,
function(data) {
htmlElement.html(data.message);
},
'json'
);
return false;
});
});
</script>
答案 1 :(得分:0)
请参阅$ .post以了解如何调用并将id传递给php脚本(http://api.jquery.com/jQuery.post/)
它会像
一样$.ajax({
context: $(this),
type: 'POST',
url: 'script.php',
data: {id: id },
success: function() {
$(this).parent().text('Thank you for reporting.');
}
});
在php脚本中,$id = $_POST['id'];
答案 2 :(得分:0)
尝试:
$.post('script.php', {variableName: value, variable2Name: value2});
php中的:$value = $_REQUEST['variableName']; $value2 = $_REQUEST['variable2Name'];
答案 3 :(得分:0)
jQuery在AJAX API catagory下为我们提供了一些很棒的AJAX方法。我认为$.post将是您正在寻找的。这就是我在Grooveshark用户脚本中将JSON数据发送到一个简单的PHP脚本的方式:
$.ajax({
type: 'POST',
url: 'http://path/to/script.php',
data: JSON.stringify({key: 'value', array: ['one', 'two', 'three']),
dataType: 'json',
success: function(data){
console.log('Mailer returned with object ', JSON.parse(data) );
}
});
以下是我在PHP中解析它的方法:
$incoming = json_decode(file_get_contents("php://input"), true);
这将返回JSON内容的嵌套关联数组,非常容易解析!我强烈建议使用JSON作为您的数据交换格式。比XML好多了。