[英]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.