1
<td id='account_type'>Asset</td>

然后是ajax

$.ajax({
type: 'POST',
url: '__popup-window_ajax.php',
data: { 'AccountType' : $('#account_type').text() },
});

然后 php

print_r($_POST['AccountType']);

Asset在这里看到单词<td id='account_type'>Asset</td>

if (($_POST['AccountType']) == 'Asset') {
echo 'Yes, Asset';
}

无回声

怎么了?

例如尝试过

$account_type = 'Asset';
if ( $account_type == 'Asset' ) {
echo 'Yes, Asset';
}

并且可以工作... ajax 会以某种方式更改值吗?

解决方案 感谢@Ankit Pokhrel。我愚蠢的疏忽。词后Asset有空格。trim帮助。

4

2 回答 2

5

尝试:

if (isset($_POST['AccountType']) && stristr($_POST['AccountType'],'Asset')){   
    //extra content is sent within AccountType variable, check your output sourcecode. 
}

// or

if (isset($_POST['AccountType']) && trim($_POST['AccountType']) =='Asset'){    
//you've got whitespaces in AccountType variable 
}
于 2013-07-24T11:50:19.753 回答
4

这只能是一个空白问题。$_POST它与处理或您的数据属性名称是否包含在引号中无关。修剪交易两边的值。

JS:

data: {AccountType: $('#account_type').text().replace(/^\s|\s$/g, '')},

PHP

trim($_POST['AccountType'])
于 2013-07-24T11:59:17.587 回答