1

我的页面上有一个表格:

<form id="extended-search" >
<div class="input-container">
<select class="select" name="sex" id="sex">
<option value="0">All</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
</div>
<input type = "button" class="searchButton" value = "Show" onClick="submitSearch();">
<img id="loading" src="img/ajax-loader.gif" alt="working.." />
</form>

和同一页面上的 jQuery 代码:

function submitSearch() {
        var submitSearchData = jQuery('#extended-search').serialize();
        var selectedValue='<?php echo $_POST['sex'];?>' ;
        jQuery.ajax({
            type: "POST",
            data: submitSearchData,
            url: "feed.php",
            success: function () {
            alert(submitSearchData);
            alert(selectedValue);
            }
        });
    }

一切正常(第一个警报返回,例如,sex=1,但第二个是空的)很好,但是$_POST['sex']是空的。我一直在尝试:

要使用:

jQuery(document).ready(function(){

    jQuery('.searchButton').click(function(){            
        submitSearch();
    });
});

要删除:url: "feed.php",从 AJAX。

制作:data: {sex: submitSearchData},

dataType在 AJAX 中添加和更改。

但一切还是一样。$_POST['sex']仍然是空的。如何$_POST var($_POST['sex'])在同一页面上通过 AJAX?

4

2 回答 2

0

使用此代码获取所选选项

var selectedValue=$('#sex').val();

因为您没有提交表单,因此您没有获得$_POST['sex']价值。您必须使用jqueryorjaavscript来获取当前选择的选项。

于 2012-10-13T02:26:33.227 回答
0

这一行:

var selectedValue='<?php echo $_POST['sex'];?>';

没有做你似乎期望它做的事情。该submitSearch()函数仅在单击按钮时被调用(两次,但稍后会更多)。当您POST使用 PHP 时,JavaScript 不会被执行(因为没有点击事件)并且当您的 JavaScript 被调用时,$_POST['sex']没有设置任何内容。

您可以像这样在 JavaScript 中获取 PHP 返回的内容:

jQuery.ajax({
    type: "POST",
    data: submitSearchData,
    url: "feed.php",
    success: function(data) {
        alert("response from PHP: " + data);
    }
});

因此,如果您的 feed.php 看起来像这样:

<?php 
if(isset($_POST['sex'])):
    switch ($_POST['sex']) {
        case 0:
            echo "You didn't select anything";
            break;
        case 1:
            echo "You selected male";
            break;
        case 2:
            echo "You selected female";
            break;
    }
else:
?>
// all your HTML
<?php endif; ?>

然后alert将返回response from PHP: You selected male(或You didn't select anythingYou selected female),具体取决于选择的内容。

由于您已经在<head>HTML 中使用 jQuery 将 click 绑定到您的按钮,因此应该只有:

<input type = "button" class="searchButton" value = "Show" />

否则它会调用submitSearch()两次。

于 2012-10-13T02:32:27.533 回答