将数据Javascript传输到PHP(点击确认框)

时间:2015-06-18 16:40:41

标签: javascript php jquery ajax

我希望当用户点击'确定'时,我会在我的服务器上的文件(.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>

什么应该是最好/最简单的选择?

2 个答案:

答案 0 :(得分:2)

  1. 您应该尽量避免使用: confirm("capteur") == true 因为那个表达式完全等同于 confirm("capteur")

  2. 使用jquery尝试以下内容:

    var variableToSend = 1;
    $.post("someFile.php", {variable: variableToSend});
    
    someFile.php

    中的

    <?php
        if(isset($_POST["variable"]))
        {
            $var = $_POST["variable"];
            //do stuff with $var here
        }
    ?>
    
  3. 另外,我认为你对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);
}