我在单击按钮时尝试使用文本框值作为会话变量,到目前为止,我已将其工作但是硬编码,如何让它使用文本框值?
这是会话代码:
<?php
session_start();
$_SESSION['url'] = "url";
?>
这是文本框:
echo "<input type='text' id='starurl' value=''/>";
echo "<br><button onclick='save_a9({$row99['starID']})'>Approve</button><button onclick='save_d9({$row99['starID']})'>Disapprove</button><br>";
这是save_a9:
function save_a9(id) {
$.post('response6.php', {starID:id},
function(result) {
alert(result);
window.location.reload();
});
}
你是这个意思吗?该值不需要表单,只需要转到另一个页面即可使用
<?php
session_start();
if (isset($_POST['url']) {
$_SESSION['url'] = $_GET['url'];
}
?>
echo "<input type='text' id='starurl' value='" . htmlspecialchars($_SESSION['url'])"
答案 0 :(得分:1)
当您分配_SESSION网址时,您需要使用已发布的变量来分配字符串。
$_SESSION['url'] = $_GET['url'];
要做相反的事情,让文本框显示会话的价值,你会:
echo "<input type='text' id='starurl' value='" . htmlspecialchars($_SESSION['url']) . "'/>";
请务必注意,如果您希望文本框实际上执行某事,则需要将输入框包裹在表单标记周围。
<form>
标记告诉浏览器表单的开始和结束位置。您可以在<form>
和</form>
标记之间添加各种HTML标记。 (thanks echoecho!)
如果您正在RESTful工作,GET应该用于您只获取数据的请求,POST应该用于您正在进行某些操作的请求。
一些例子:
形式&amp; PHP文件看起来像这样:
<?php
session_start();
if (isset($_POST['url']) {
$_SESSION['url'] = $_POST['url'];
}
echo '<form action="POST" method="?">';
echo "<input type='text' id='starurl' value='" . htmlspecialchars($_SESSION['url']) . "'/>";
echo '</form>';
您会注意到表单更新后,会话也会更新。当您关闭浏览器并再次打开它时,您将在输入框中看到旧内容。 (按“enter”键保存输入框,不带提交按钮)。
答案 1 :(得分:1)
要从文本框中获取值,请先将HTML修改为:
<input type='text' id='starurl' name='url' value=''/>
文本框需要name
属性,该属性由$_POST
,$_GET
或$_REQUEST
超全球使用。
然后根据您的表单提交方法(GET或POST):
$_SESSION['url'] = $_GET['url'] // Default method for form submission
$_SESSION['url'] = $_POST['url'] // For <form method="post">
$_SESSION['url'] = $_REQUEST['url'] // Works for both
编辑:
由于您使用按钮onclick事件来设置会话变量,您可以使用它(假设您使用的是jQuery):
Javascript:
$('button').click(function(){
var url = $('#starurl').val();
$('#sessionURLDiv').load('save_session_url.php?url='+url);
});
PHP:save_session_url.php:
<?php
session_start();
if ( isset ( $_GET['url'] ) ) {
$_SESSION['url'] = $_GET['url'];
}
?>
HTML:
只需在页面的任何位置添加此div即可。
<div id = "sessionURLDiv"></div>
我希望这会有所帮助。
答案 2 :(得分:1)
只需使用这个
// page1.php中
<form action="page2.php" method="post">
<input type="text" name="session_value">
<input type="submit" name="set_session" value="Set Session">
</from>
//使page2.php
<?php
if(isset($_POST['set_session'])){
session_start();
$_SESSION['url'] = $_POST['session_value'];
}
?>