我有一个带变量的脚本,这个变量我传递给.php脚本,然后从.php脚本传递到.txt文件,然后存储变量中的数值,唯一的问题是当我通过变量到.txt文件,而不是传递变量的数量,它只传递它的名称。
以下是我的脚本:
PHP:
<?php
$variableToPass= $_POST['variableToPass'];
$filename = "textFilePass.txt";
$content = file_get_contents($filename);
$content .= $variableToPass. PHP_EOL;
file_put_contents($filename, $content);
?>
HTML:
<form id="payment-form" action="chargeCard.php" method="POST" name="payment-form">
<input type="text" name="amount" id="amount" />
<input type="hidden" id="variableToPass" name="variableToPass" value="variableToPass"/>
<input type="image" src="butImg.png" id="Button" value="but" alt="but"/>
</form>
<script type="text/javascript">
var variableToPass= 1;
document.getElementById("variableToPass").innerHTML = variableToPass;
document.getElementByID("variableToPass").value = variableToPass;
</script>
答案 0 :(得分:3)
你这里有一个错字:
document.getElementByID("variableToPass").value = variableToPass;
^
将其更改为:
document.getElementById("variableToPass").value = variableToPass;
该值不会被更改并保持默认值,即variableToPass
,这与PHP变量名称一致。
除此之外,您不需要更改innerHTML - 它是输入,它有其价值。
答案 1 :(得分:2)
&#34;这是因为我想保存变量以便能够向网站上的所有用户显示它,所以要做到这一点,我有默认值1,然后我有一个文本输入,只允许变量+ 1的数字,所以假设默认值为1,然后我将2放入输入,然后.php文件将获得2的输入并将其保存到.txt文件中,其中之后,javascript中的变量将在.txt文件中获取此变量,并将新值转换为变量。有点复杂,但基本上只是为所有用户而不是本地保存变量。&#34;
好的,我非常清楚你想在这里做什么。
重要的旁注: 请仔细并完整地回答我的回答;我可能没有完全掌握你想要达到的目标,所以我的答案有两种选择。
这是您需要做的事情:
首先使用is_numeric()
检查输入是否为数字。
然后分配变量并使用$_POST['variableToPass']
数组添加POST数量。
<强> PHP 强>
<?php
if(isset($_POST['amount']) && is_numeric($_POST['amount']) ){
$amount = $_POST['amount'];
}
else{
echo "It is not numeric. Please click back and enter an integer.";
exit;
}
$variableToPass1 = $_POST['variableToPass'];
$variableToPass = $variableToPass1 + $amount;
$filename = "textFilePass.txt"; // make sure this file exists before executing
$content = file_get_contents($filename);
$content .= $variableToPass. PHP_EOL;
file_put_contents($filename, $content);
HTML表单
<form id="payment-form" action="chargeCard.php" method="POST" name="payment-form">
<input type="text" name="amount" id="amount" />
<input type="hidden" id="variableToPass" name="variableToPass" value="variableToPass"/>
<input type="submit" name="submit" value="Submit"/>
</form>
<script type="text/javascript">
var variableToPass= 1;
document.getElementById("variableToPass").innerHTML = variableToPass;
document.getElementById("variableToPass").value = variableToPass;
</script>
但是,使用此方法将继续添加/附加到文件。如果这不是所需的结果,则需要删除以下点:
$content .= $variableToPass. PHP_EOL;
^
读作:
$content = $variableToPass. PHP_EOL;
另外,如前所述;这一行:
document.getElementByID("variableToPass").value = variableToPass;
应为:
document.getElementById("variableToPass").value = variableToPass;
选项2 使用&#34;金额中的数字&#34;输入写入文件。
这将从输入中写入任何数字并将其写入文件,而不是附加到它。
如果未插入数字且仅点击提交按钮,则会写出您在var variableToPass= 1;
<?php
if(isset($_POST['amount']) && is_numeric($_POST['amount']) ){
$variableToPass = $_POST['amount'];
}
else{
$variableToPass = $_POST['variableToPass'];
}
$filename = "textFilePass.txt";
$content = file_get_contents($filename);
$content = $variableToPass. PHP_EOL;
file_put_contents($filename, $content);
<强>脚注:强>
答案 2 :(得分:1)
试试这个:
$var_str = var_export($text, true);
$var = "<?php\n\n\$$text = $var_str;\n\n?>";
file_put_contents('filename.php', $var);
答案 3 :(得分:1)
<input type="hidden" id="variableToPass" name="variableToPass" value="variableToPass"/>
这将始终发送值(value =“variableToPass”)尝试将其更改为(value =“1”)这应返回1