我有一个按钮,它使用 AJAX post 方法将值发布到 PHP 中。
当我在 JavaScript 中回显该值时,它总是回显 0,即使我 100% 确定 PHP 中的值不是 0。
这是 JavaScript:
function slanje(br){
$.ajax({
type: 'POST',
dataType: 'html',
data: {
'broj' : br,
}
});
}
function otvaranje(id, broj){
slanje(broj);
var testNumber = <?php echo $br; ?> + "";
和 PHP(我执行文件写入来检查 PHP 是否收到正确的值):
if(isset($_POST['broj'])){
$br = $_POST['broj'];
$file = fopen($br . "broj.txt", "w");
fclose($file);
}
这是我在 Javascript 中得到的值:
这是 PHP 的值:
编辑2:我想在PHP中发布变量,而不是使用我用ajax传递的索引获取PHP数组元素的值。并且无需重新加载页面。我没有包含数组部分,因为当我进行测试时,我什至无法让它回显我使用 AJAX 传递的变量。
最佳答案
如果您想使用 AJAX 来执行此操作,请让您的 PHP 脚本返回 POSTed 值并在 AJAX 请求的成功处理程序中获取它。
为了使成功处理程序能够更改 testNumber
的值,必须在 function otvaranje
之外声明该变量。
以下是必要的修改(另请注意我添加的注释):
PHP
if(isset($_POST['broj'])){
$br = $_POST['broj'];
$file = fopen($br . "broj.txt", "w");
fclose($file);
// Just output the value and exit
// If there is business logic doing something with
// $br, then move this after that code.
// But remember to only do this if the script was
// called with POST, otherwise the initial request
// wouldn't work anymore.
print $br;
exit;
}
JavaScript
var testNumber = "<?php echo $br; ?>";
function slanje(br){
$.ajax({
type: 'POST',
dataType: 'html',
data: {
'broj' : br,
},
success: function(data) {
// called when the request succeeded
testNumber = data;
}
});
}
function otvaranje(id, broj){
slanje(broj);
// move outside: var testNumber = <?php echo $br; ?> + "";
// rest of function content
}
关于javascript - 即使在使用 AJAX 进行 POST 后值不是 "0",PHP 也会回显 JavaScript 值 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580232/