我正在尝试将用户选择的<option>
附加到发送到php页面的ajax调用中。
(我对ajax或jQuery不是很熟悉)
我已经构建了一个JSFiddle,希望它能比我解释它更容易理解。以下是它的要点:
<select name="internType" style="width: 100%; display: block; color: #000;" id="internType">
<option selected value="default">Please Select</option>
<option value="accounting">Accounting</option>
<option value="auditing">Auditing</option>
<option value="finance">Finance</option>
<option value="humanresources">Human Resources</option>
</select>
formData = new FormData( $(this)[0] );
self.sendData(formData);
sendData : function(formData){
var self = this;
var internChoice = $('#internType').val() // This doesn't seem to hold the value
formData.append('internChoice', internChoice); // but rather the entire list
console.log(formData);
$.ajax({
url: self.settings.path + '?i=' + self.settings.app ,
type: 'POST',
data: formData,
async: false,
success: function (data) {
console.log(data);
outcome = jQuery.parseJSON( data );
self.handleOutcome(outcome);
},
cache: false,
contentType: false,
processData: false
});
},
当我var_dump($_POST);
时,我收到从输入传递的数据,但是从下拉列表中我收到一个包含所有值的字符串。例如:
["internSelect"]=>
string(130) "
Please Select
Accounting
Auditing
Finance
Human Resources
"
我做错了什么,怎样才能更好地解决我做错的问题?
我丢失了选定的值吗?页面永远不会刷新,所以我不确定是怎么回事。
如果您需要知道,我正在使用jQuery 1.10.2。
答案 0 :(得分:2)
你可以尝试这样的东西来获得价值: 代替: var internChoice = $(&#39; #internType&#39;)。val()
尝试: var internChoice = $(&#39; #internType option:selected&#39;)。val()