通过.php将变量值发送到.txt文件

时间:2015-04-02 14:46:39

标签: javascript php html variables numbers

我有一个带变量的脚本,这个变量我传递给.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>

4 个答案:

答案 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;
  • getElementById区分大小写。

选项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