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

Javascript 通过.php将变量值发送到.txt文件,javascript,php,html,variables,numbers,Javascript,Php,Html,Variables,Numbers,我有一个带有变量的脚本,我将这个变量传递到一个.php脚本,然后从.php脚本传递到一个.txt文件,该文件存储变量的数值,唯一的问题是,当我将变量传递到.txt文件时,它只传递变量的名称,而不是传递变量的编号 以下是我的脚本: php: html: var variableToPass=1; document.getElementById(“variableToPass”).innerHTML=variableToPass; document.getElementByID(“variab

我有一个带有变量的脚本,我将这个变量传递到一个.php脚本,然后从.php脚本传递到一个.txt文件,该文件存储变量的数值,唯一的问题是,当我将变量传递到.txt文件时,它只传递变量的名称,而不是传递变量的编号

以下是我的脚本:

php:


html:


var variableToPass=1;
document.getElementById(“variableToPass”).innerHTML=variableToPass;
document.getElementByID(“variableToPass”).value=variableToPass;
您在此处输入了一个错误:

document.getElementByID("variableToPass").value = variableToPass;
                      ^
将其更改为:

document.getElementById("variableToPass").value = variableToPass;
该值不会更改,而是保持默认值,即
variableToPass
,该值与PHP变量名一致

此外,您不需要更改innerHTML-它是输入,它有它的值。

尝试以下方法:

$var_str = var_export($text, true);
$var = "<?php\n\n\$$text = $var_str;\n\n?>";
file_put_contents('filename.php', $var);
$var\u str=var\u导出($text,true);
$var=”“;
文件内容('filename.php',$var);

这将始终发送值(value=“variableToPass”)尝试将其更改为(value=“1”),这将返回1


“这是因为我想保存变量,以便能够向网站上的所有用户显示它,所以为此,我有一个默认值,即1,然后我有一个文本输入,它只允许变量+1的数字,所以让我们假设默认值为1,然后我将把2放入输入,然后.php文件将得到这个2的输入,并将它保存到.txt文件中,然后javascript中的变量将得到这个.txt文件中的变量,并将新值转换为变量。有点复杂,但基本上只是为所有用户保存变量,而不是本地保存。”

好的,我很清楚你想在这里做什么

重要旁注:请仔细阅读我的答案,并将其完整列出;我可能还没有完全理解您希望在这里实现的目标,因此我的答案中有两个选项

以下是您需要做的:

首先使用
is\u numeric()
检查输入是否为数字

然后分配变量并使用
$\u 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);
改为:

$content = $variableToPass. PHP_EOL;
另外,如前所述,这一行:

document.getElementByID("variableToPass").value = variableToPass;
应改为:

document.getElementById("variableToPass").value = variableToPass;
  • getElementById区分大小写

选项2使用“金额”输入中的数字写入文件

这将从输入中写入任何数字,并将其写入文件,而不是附加到该文件

如果没有插入一个数字,只需单击提交按钮,就会写入您在
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);

See输入的值是
variableToPass
,javascript中的错误不会改变这一点,因此这就是发送到PHP脚本的内容,而不是
1
“id是一个区分大小写的字符串,表示要查找的元素的唯一id。“-getElementById
也是如此
getElementById
getElementById
是两种完全不同的动物。因此,基本上我无法通过这种方式获取变量的值?请尝试从输入中删除
value=“variableToPass”
。感谢您的回答,唯一的问题是这个变量的值会随着时间的推移而改变,所以它不能仅仅设置为1,它必须是发送的变量或给定时间变量中的金额。你从哪里获得该值?因为我想保存变量以便能够在网站上向所有用户显示它,为此,我有一个默认值,即1,然后我有一个文本输入,它只允许变量+1的数字,所以假设默认值为1,然后我将2放入输入,然后.php文件将得到2的输入,并将其保存到.txt文件中,在此之后,javascript中的变量将在.txt文件中获取此变量,并将新值转换为变量。有点复杂,但基本上只是为所有用户保存变量,而不是本地保存。您需要将getElementByID(“variableToPass”)更改为getElementByID(“variableToPass”),如上文所述,并将值设置为空,这样您将始终获得var variableToPass=1中的值;请记住,您已经硬编码了变量。OP、tsk、tsk完全忽略了答案和注释。它们没有被忽略。我只是测试它们,并在后面留下响应。我已经修复了输入错误,html值的最后一行“get”是显示变量,忽略它即可。但是,有没有一种方法可以像我所做的那样,只获取数值而不是变量名?是的,所有这些都是为了获取这个数值。您可以在值中输入1作为默认值,但无论如何它都会立即被javascript覆盖。他不想在php脚本中输入该值,他询问了.txt文件以及您为什么要将
脚本写入文件?;):pI已经找到了解决问题的方法,但是非常感谢你的回答,它在路上帮助了我。
$content .= $variableToPass. PHP_EOL;
         ^
$content = $variableToPass. PHP_EOL;
document.getElementByID("variableToPass").value = variableToPass;
document.getElementById("variableToPass").value = variableToPass;
<?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);