你好,我想在用户点击按钮时调用函数download,基本上是:
<input type='button' name='Release' onclick="document.write('<?php downloadFichier($tab1, $t2) ?>');" value='Click to Release'>
当然不起作用,所以我试着用AJAX,我不懂这种语言,但可以做我想做的事情:用两个参数调用我的PHP函数?
<button type="button">Click Me</button>
<p></p>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'POST',
url: 'file_product.php',
success: function(data) {
$("p").text(data);
}
});
});
});
</script>
谢谢你对我的照顾。
发布于 2016-12-19 21:56:49
您应该使用onclick事件调用js-function,如下所示:
<input type='button' name='Release' onclick="downloadFichier(param1, param2)" value='Click to Release'>
你的AJAX函数应该是这样的:
function downloadFichier(param1, param2){
$.ajax({
type: 'POST',
url: 'file_product.php',
data: "param1=" + param1 + "¶m2=" + param2,
success: function(data) {
$("p").text(data);
}
});
您可以在PHP-script中根据参数的名称(param1,param2)从$_REQUEST数组中获取参数。
发布于 2016-12-19 22:12:30
@PaulBasenko启发了这个替代方案,你可以通过一些<input type="hidden" />
来设置参数:
HTML
<form action="#" method="POST" id="form1">
<input type="hidden" name="tab1" value="<?= $tab1 ?>" />
<input type="hidden" name="t2" value="<?= $t2 ?>" />
<button type="submit">Click to Release</button>
</form>
Javascript
$(function() { // equivalent of "$(document).ready(function(){"
$('body').on('submit', '#form1', function(event) {
event.preventDefault();
var formData = $(this).serialize();
$.ajax({
type : 'POST',
url : 'file_product.php',
data : formData,
success : function(data) {
$('#p').text(data);
}
});
});
});
PhP
<?php
$tab1 = (isset($_POST['tab1'])) ? $_POST['tab1'] : null;
$t2 = (isset($_POST['t2'])) ? $_POST['t2'] : null;
// process & return json_encoded data
?>
它是如何工作的?
当单击按钮时,这是一个type="submit"
,它将触发其父form
的submit
事件。然后,jQuery监听这个事件,并使用èvent.preventDefault()
立即阻止它,以便调用Ajax而不是常规的同步调用php文件。
https://stackoverflow.com/questions/41223900
复制相似问题