繁体   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