我希望当用户点击'确定'时,我会在我的服务器上的文件(.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']; ?>
这里有GET / POST:
<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>
什么应该是最好/最简单的选择?
答案 0 :(得分:2)
您应该尽量避免使用:
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"];
}
?>
答案 1 :(得分:1)
我认为最好的方法是使用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);
}