大家好我不明白我的代码有什么问题。如果有人帮助我,我将非常感激。 PHP中的参数值永远不会改变。
表格
<form id= 'id' method="post" ><input type='text' value='<?php echo $var1; ?>' name='<?php echo $var3; ?>'> <input type='text' value='<?php echo $var2; ?>' name='<?php echo $var3; ?>'><input type='submit' value='Update' onclick = 'update("<?php echo $var1 ?>", "<?php echo $var2 ?>", "<?php echo $var3 ?>"); '><br></form>
JavaScript
function update(var1, var2, var3){
$.ajax({
type: 'post',
url: 'file.php',
data: {
'var1' : var1,
'var2' : var2,
'var3' : var3
},
});
}
PHP:
$var1 = '';
if(isset($_POST['var1']))
$var1 = $_POST['va1'];
$var2 = '';
if(isset($_POST['var2']))
$var2 = $_POST['var2'];
$var3 = '';
if(isset($_POST['var3']))
$var3 = $_POST['var3'];
答案 0 :(得分:0)
您的JavaScript执行此操作:
success: function( data ) { console.log( data ); }
因此,无论PHP脚本的输出是什么,它都将在浏览器的开发人员工具中记录到控制台。
你的PHP,这样做:
$var1 = !empty($_POST['var1']) ? $_POST['var1'] : ''; if(isset($_POST['var1'])) $var1 = $_POST['va1'];
这是多余的,因为你基本上做了两次同样的事情:
$var1 = !empty($_POST['var1']) ? $_POST['var1'] : '';
......就足够了。
但是,PHP确实全部。
设置变量,然后不输出任何内容。
因此,当您在JS中记录data
时,不会输出任何内容。
如果你想要发生任何有用的事情,你需要更改PHP以便它对变量做些什么。
你也说过:
<input type='text' value='<?php echo $var1; ?>'
这表明您可能希望设置变量以更改输入中的值。
这不会发生。
它们是不同的程序(或者它们可能是在不同时间运行的相同程序)。
第二个程序对第一个程序的输出没有影响。
通过比较来考虑这个:
你在纸上打印的内容因为你写了另一份文件而发生了变化。
如果您想更改输入值,则需要将数据发送到浏览器并使用JavaScript进行更改。
首先,以合理的格式输出数据:
header("Content-Type: application/json");
echo json_encode({
var1 => $var1,
var2 => $var2,
var3 => $var3,
});
然后编写JS以对该数据执行某些操作:
success: function( data ) {
// This sets the value of the first input element in the document by way of example. Extrapolate from there to set the things you actually care about
jQuery("input").val(data.var1);
}
答案 1 :(得分:-1)
如果有$_POST
你应该用isset检查,那应该就够了。无需!empty
$var1 = isset($_POST['var1']) ? $_POST['var1'] : "";