我希望脚本执行以下操作:
<input>
框中
<form>
后,将该号码写入文本文件当表单再次加载时,它将重新运行代码并且数字将增加1.这基本上是在表单提交之前预先填充具有唯一且渐进数字的字段。
我目前正在使用jQuery,PHP,当然还有HTML:
HTML:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js">
$.get("http://www.domain.com/tools/formdata.txt");
function test(){
$.get('http://www.domain.com/tools/formdata.txt', function(data){
x = data++;
});
}
</script>
</head>
<body onload="test()"/>
<form action="save_json.php" method="post">
Contract: <input type="number" name="contract" id="contract" value="x" /><br />
<input type="submit" id="submit" value="Invia" />
</form>
</body>
</html>
PHP
<?php
if(isset($_POST['contract'])) {
// if form fields are empty, outputs message, else, gets their data
if(empty($_POST['contract'])) {
echo 'All fields are required';
}
else {
// adds form data into an array
$formdata = $_POST['contract'];
if(file_put_contents('/var/www/domain/tools/formdata.txt', $formdata)) echo 'Data successfully saved';
else echo 'Unable to save data, try again or contact IT';
}
}
else echo 'Form fields not submitted';
?>
答案 0 :(得分:0)
首先:我建议你不要使用javascript,而是在文件的开头用PHP file_get_contents('formdata.txt')
执行此操作,然后将其回显。这样,值就会在加载时出现,而不是等待HTML呈现并运行javascript。此外,这是一个更好的做法,如果您选择展开页面,它会让您做更多的事情。
但是,这是解决问题的方法:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>
var x;
function test(){
$.get('file.txt', function(data){
console.log('data',data);
var x = ++data;
console.log('x',x);
$('#contract').val(x);
});
}
</script>
</head>
<body onload="test()"/>
<form action="aoeu.php" method="post">
Contract: <input type="number" name="contract" id="contract" /><br />
<input type="submit" id="submit" value="Invia" />
</form>
</body>
</html>
需要注意的事项:
<script>
标记,包括jquery库,然后再打开另一个。你的PHP工作正常。