我们可以在会话变量中使用输入类型值而无需任何表单提交
就像有一个输入字段现在我想在$ _session ['anyname']中保存上面的输入字段值;当页面中没有表格时 .
我想你最好的办法是设置一个单独的PHP脚本,通过Javascript调用查询字符串( ajax.php?key=value )中的输入字段信息,并将该信息存储到 $_SESSION 变量中 .
ajax.php?key=value
$_SESSION
PHP可能看起来像这样:
session_start(); foreach ($_GET as $key => $value) $_SESSION[$key] = $value;
使用jQuery和PHP
HTML:
<input type="text" id="autosend" />
JavaScript
$(function(){ $('#autosend').blur(function(){ $.post('receiver.php',{fieldval:$(this).val()},function(response){ alert(response); }); }) })
PHP
$_SESSION["somename"] = $_POST["fieldval"]; echo $_SESSION["somename"];
现在,只要输入字段失去焦点,会话变量将使用当前值更新 .
在set.php中:
<?php session_start(); $_SESSION['value'] = $_POST['value']; ?>
在非表单形式page.php中:
<?php session_start() ?> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript"> function setVal() { var val = jQuery('#value').val() alert('Setting the value to "' + val + '"') jQuery.post('set.php', {value: val}) alert('Finished setting the value') } jQuery(document).ready(function() { setTimeout('setVal()', 3000) }) </head> <body> <form> <input id="value" type="text" name="value" value="value"> <input id="value2" type="text" name="value2" value="value2"> </form> </body> </html>
这将记录该值(延迟3秒后)
在test.php中测试它:
<?php session_start(); echo '<pre>'; echo htmlentities(var_export($_SESSION, true)); echo '</pre>'; ?>
现在它在你的会话中没有提交表格
3 回答
我想你最好的办法是设置一个单独的PHP脚本,通过Javascript调用查询字符串(
ajax.php?key=value
)中的输入字段信息,并将该信息存储到$_SESSION
变量中 .PHP可能看起来像这样:
使用jQuery和PHP
HTML:
JavaScript
PHP
现在,只要输入字段失去焦点,会话变量将使用当前值更新 .
在set.php中:
在非表单形式page.php中:
这将记录该值(延迟3秒后)
在test.php中测试它:
现在它在你的会话中没有提交表格