如何在PHP和JS之间共享变量


How to share variables between PHP and JS?

我有一个表单,它接受单个输入,理想情况下在PHP的shell命令中处理它,然后返回一个数组。

表单是由myform.submit();运行onChange="onChange();"后在JS中提交的。

  1. 如何防止表单提交后页面刷新?
  2. 如何传递数组回JS?

CODE UPDATE:

AJAX代码我有点在这里,但我不确定如何实现它。

我的PHP/HTML:
<form action="test.php" method="post" id="CONFIRM">
<input class="txt" value="myVal" type="text" size="12" maxlength="9" name="myName" id="myID" onKeyUp="checkUpdate();" onChange="checkUpdate();" onFocus="" />
</form>

我的JS:

function checkUpdate(){
    var form = document.getElementById('CONFIRM');
    form.submit();
}

您需要使用某种AJAX请求来阻止浏览器的默认操作。

HTML:

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="path-to-scripts.js"></script>
</head>
<body>
<form id="myform" method="post" action="">
<fieldset>
<legend for="info">Some Info</legend>
<input type="text" id="info" name="info" placeholder="some info" />
</fieldset>
<filedset>
<input type="submit" value="Submit" />
</fieldset>
</form>
</body>
JavaScript:

(function($) {
$('#myform').submit(function(event) {
    event.preventDefault();
    $.ajax({
        type: 'post',
        url: 'path-to-your-php-file.php',
        data: $('#myform').serialize(),
        timeout: 50000
    }).done(function(responseData) {
        // Do something with the response data.
    }).fail(function(error) {
        // Not good.
    });
});
})(jQuery);

现在,假设你想用responseData调用一个php函数。您还需要考虑如何返回responseData。它是一个物体吗?这将决定您如何处理下一个请求。根据您如何设置内容,可以像一样轻松地执行:

JavaScript:

...
}).done(function(responseData) {
    if (responseData)
    {
        $.ajax({
            type: 'post',
            data: responseData,
            url: 'path-to-your-next-php-file.php',
            timeout: 50000
        }).done(function(responseData) {
            // Do something with the response data.
        }).fail(function(error) {
            // Not good.
        });
    }
}).fail(function(error) {
...

然而,这样做,你将开始进入许多嵌套的ajax调用,这可能导致"回调地狱"。你可能会想看看用承诺让你的生活更轻松。

有两个问题(含答案)可以帮助你:

  • php和Javascript之间的变量

  • 将变量从PHP传递到JavaScript的有效方法