我希望当用户单击"Ok"时,我在服务器上的文件(.txt)中写入一个字符串。
<script> if(confirm('capteur') == true){ /*write on a file*/ } </script>
我以为我可以简单地编写JavaScript来做到这一点,但它不是那样工作的。所以,我想将数据从JavaScript传输到PHP,这指示PHP是否必须写入(或不写入)文件。
<script> if(confirm('capteur') == true){ /*send data to PHP*/ } </script>
<?php $var = //data send from Javascript
if($var==1){
$fichier = fopen("log.txt",'a');
$puts($fichier,"restart");
fclose($fichier);
}
?>
我尝试了一些解决方案(Ajax,重定向,POST/GET,jquery),但我从未设法传输数据。
这是我使用 jquery 的测试:
<script> if(confirm('capteur') == true){
var variableToSend = 1;
$.post('jv.php', {variable: variableToSend});
} </script>
<?php $var = $_POST['variable']; ?>
在这里与 获取/发布 :
<script>if(confirm('capteur') == true){
var xhr_object = null;
if(window.XMLHttpRequest){
xhr_object = new XMLHttpRequest();
}else{
alert("Your browser doesn't support the XMLHTTPRequest object");
}
xhr_object.open("POST", "jv.php", true);
xhr_object.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr_object.send("variable=1");
/*xhr_object.open("GET","jv.php?variable=1",true); xhr_object.send();*/
}
</script>
最好/最简单的选择是什么?
-
您应该尽量避免使用:
confirm("capteur") == true
因为该表达式完全等效于confirm("capteur")
-
使用 jquery 尝试以下操作:
var variableToSend = 1; $.post("someFile.php", {variable: variableToSend});
在
someFile.php
<?php if(isset($_POST["variable"])) { $var = $_POST["variable"]; //do stuff with $var here } ?>
另外,我认为你对PHP的工作原理有一个根本性的误解。PHP 所做的所有处理都发生在您看到结果页面之前。如果您使用 ajax 将数据发送到 PHP 页面,除非您对页面结果执行某些操作并适当地更新当前页面,否则当前页面上的任何内容都不会更新。
尝试一下以更好地理解:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js">
<script type="text/javascript">
if(confirm("click ok!"))
{
$.post("myphpfile.php", {data: "ok"})
.done(function(data)
{
alert(data);
});
}
</script>
</head>
<body>
</body>
</html>
在myphpfile中.php
<?php
if(isset($_POST["data"]))
{
print "your message: " . $_POST["data"];
}
?>
在我看来,最好的方法是Ajax方法。
<script type="text/javascript">
if(confirm('capteur') == true) {
var variableToSend = 1;
jQuery.ajax({
url: "jv.php",
type: 'POST',
cache: false,
data: {variable: variableToSend}
});
}
</script>
文件的内容 jv.php 应该是这样的
<?php
if (isset($_POST['variable'])) {
file_put_contents('log.txt', $_POST['variable'], FILE_APPEND);
}