[英]How To Get HTML Select Option Text And Post To PHP Variable Using Jquery/Ajax
HTML
<form method="post">
<select name="MySelect" onchange="run(this)">
<option value="year 1">year 1</option>
<option value="year 2">year 2</option>
<option value="year 3">year 3</option>
</select>
</form>
我正在尝试获取选定的选项文本并将其存储在 php 变量中。 稍后在页面下方使用。
onChange 事件调用 run() 函数。 在我的 script.js 文件中。
JS/阿贾克斯
function run(sel) {
var i = sel.selectedIndex;
alert(i);
alert(sel.options[i].text);
if (i != -1) {
$.ajax({
type: "POST",
url: "home.php",
data: { opValue : sel.options[i].text},
success: function(data)
{
alert(data);
}
});
}
}
数据 opValue 存储在 $_POST 数组中。 然后在下面我试图打印数组,存储在变量中
主页.php
<?php
print_r($_POST);
if(isset($_POST['opValue']))
{
echo 'set';
print_r($_POST);
$option = $_POST['opValue'];
echo $option ;
}
?>
虽然它不起作用,但它没有到达回声集。 这表明未设置 post 变量。 我在这里做错了什么,这对我来说是相当新的,我仍然是 php/ajax/js 的初学者。
PS 我选择这样做是因为我不希望页面重新加载/刷新。
问候。
编辑:
现在,当我在响应中选择第 2 年时,我收到了这个值得注意的信息。
Array
(
[opValue] => year 2
)
1year 2year 2Array
(
[opValue] => year 2
)
为此,您需要一个函数。 只需在您希望它显示选项的任何地方调用该函数即可。
function mySelect(){
$optArray = array('year 1','year 2','year 3');
$options = '';
foreach($optArray as $items){
$options.="<option value='$items'>" . $items ."</option>";
}
return $options;
}
调用函数:
<select>
<?= mySelect() ?>
</select>
您无法看到从 PHP 回显的数据,因为您没有查看获得的数据。
您的 JavaScript 正在接受 HTTP 响应,然后提示“成功”。
改为提醒成功函数的data
参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.