更新PHP变量

时间:2014-04-23 19:16:56

标签: javascript php jquery ajax

以下代码到目前为止有效。这是让我难过的下一步。最初,我想编写一个将变量传递给PHP文件并调用PHP文件的Javascript,以便使用新值更新我的网页上的文本文件。我花了很多时间研究发布的类似问题,但我似乎无法让其中任何一个工作,有些涉及Ajax,我对此并不熟悉。听起来像是在服务器端工作的php和客户端的脚本问题,"从来没有twain应该满足。"

php代码从第一个按钮点击(" Test")获取值并将其写入文件。

脚本从用户输入的文本框中获取值。

有没有什么方法可以让php代码再次使用文本框中的值运行,以便覆盖" testfile.txt"中的文本?

有没有办法运行window.open(' JSinPHPtoWrite.php?jsVar = Test')命令,在第一个按钮中作为脚本的一部分重新运行php代码或甚至更新该按钮命令,以便再次单击该按钮包含文本框中的值?

<?php
$myFile = "testFile.txt";
$fh = fopen($myFile, "w") or die("can't open file");
$MSG=$_GET["jsVar"]; //gets value from button click below
fwrite($fh, $jsVar);
$fh = fopen($myFile, "r");
echo fgets($fh); //read contents of file
fclose($fh);
?>

<script>
function getTextBoxValue() {
    var jsVar = document.getElementById("newVar").value;
}
</script>

<button onClick="window.open('JSinPHPtoWrite.php?jsVar=Test')">Send JavaScript to PHP</button>
<button onClick="getTextBoxValue()">Get Text Box Value</button>
<button onClick="window.close()">Close Window</button>
New String: <input type="text" id="newVar">

1 个答案:

答案 0 :(得分:1)

以下代码说明了如何通过AJAX将表单值发送到服务器端脚本(如您编写的脚本)。 PHP代码不需要触及,因此我不会再次列出它。

档案index.html

<!DOCTYPE html>
<html>
<head>
    <title></title>

    <!-- jQuery makes life with Ajax easier -->
    <script type="application/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

    <!-- Add a cool function called "serializeObject" to jQuery -->
    <script type="application/javascript" src="http://github.com/cowboy/jquery-misc/raw/master/jquery.ba-serializeobject.min.js"></script>

    <!-- Custom script -->
    <script type="application/javascript">

        // This function is called when the form is submitted
        function handle_submission(e) {
            e.preventDefault(); // Don't reload page on form Submit

            // Creates a nice object like { 'jsVar': <value> }
            var form_data = $(this).serializeObject();

            // Send the value to the server
            $.ajax({
                url: 'myphpscript.php',
                type: 'get',
                data: form_data,
                success: function(result) {
                    $('div#result_box').html(result)
                }
            });
        }

        // This is called once at page load
        function page_init() {
            $('form#my_form').submit(handle_submission);
        }

        $(document).ready(page_init);

    </script>


</head>
<body>

<form action="myphpscript.php" id="my_form">
    <input type="text" name="jsVar"/>
    <button type="submit">Submit the value</button>
</form>

<div id="result_box"></div>

</body>
</html>