How to share variables between PHP and JS?
我有一个表单,它接受一个输入,理想情况下在PHP中的shell命令中处理它,然后返回一个数组。
表单在运行
代码更新:
有点AJAX代码,但我不确定如何实现它。
我的PHP / HTML:
1 2 3 | <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:
1 2 3 4 | function checkUpdate(){ var form = document.getElementById('CONFIRM'); form.submit(); } |
您需要使用某种AJAX请求来阻止浏览器的默认操作。
HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> <script src="path-to-scripts.js"> </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的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | (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的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ... }).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的有效方法