簡體   English   中英

如何使用 Jquery/Ajax 獲取 HTML 選擇選項文本並發布到 PHP 變量

[英]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 我選擇這樣做是因為我不希望頁面重新加載/刷新。

問候。

編輯:

  1. 添加警報(數據)

現在,當我在響應中選擇第 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM