Php 后置选择元素值
我使用jquery将数据发布到mysqlPhp 后置选择元素值,php,jquery,mysql,Php,Jquery,Mysql,我使用jquery将数据发布到mysql **In settings.php i have this short JS code:** $("form#submit").submit(function() { var fname = $('#fname').attr('value'); var lname = $('#lname').attr('value'); $.ajax({ type: "POST", url:
**In settings.php i have this short JS code:**
$("form#submit").submit(function() {
var fname = $('#fname').attr('value');
var lname = $('#lname').attr('value');
$.ajax({
type: "POST",
url: "settings.php",
data: "fname="+ fname +"& lname="+ lname,
success: function(){
$('form#submit').hide();
$('div.success').fadeIn();
}
});
return false;
});
**And this short php:**
if (isset($_POST['fname'])){
$fname = htmlspecialchars(trim($_POST['fname']));
DO SOMETHING....
}
这是FNAME的来源代码:点击“添加图像”按钮后,发布FNAME值
echo "......
<form id='submit$i' method='post'><input type='hidden' name='fname' id='fname' class='text' value='$fm_linkaz'></div><input name='add'type='image' id='add' value='$fm_linkaz' src='s.png'/></form>..........";
这是很好的工作。但是我需要一个SELECT元素,所以我将代码更改为:
......
echo "<select name=dropdown_list id='**ONAME**'><option value''>test</option>";
for($i=0; $i < count($myarray); $i++){
echo "<option value='$myarray[$i]'>$myarray[$i]</option>";}echo "</select>";
......</form>";
这是工作得很好,但我不知道如何修改JS代码,张贴选定的值太多。
感谢您的帮助。获取所选值以供使用
jQuery('#**ONAME**').val();
虽然我不确定**ONAME**是否为有效ID,但请尝试删除**以获取值,并使用
$('select[name=dropdown_list]').val();
您也可以使用和ID,但我认为其中包含一些无效字符,我怀疑这是否有效:
$('select#**ONAME**').val();
不管怎样,瓦尔就是你要找的。我还建议使用val而不是attr'value'。首先,javascript代码需要一些更新: $'fname'.val优于$'fname'.attr'value'-.val也将处理选择/复选框-其中.attr'value'不可靠 第二:$.ajax调用的数据参数可以接受一个json对象,并将其转换为字符串形式
$.ajax({
type: "POST",
url: "settings.php",
data: {
'fname': $('#fname').val(),
'lname': $('#lname').val(),
'oname': $('#oname').val()
},
success: function(){
$('form#submit').hide();
$('div.success').fadeIn();
}
});
有一种方法可以使这更容易:
$("form").ajaxForm({
success: function(){
$('form#submit').hide();
$('div.success').fadeIn();
}
});
更新:
此外,元素名为dropdown_list,可能您希望它以oname的形式提交数据。表单元素使用name属性提交,id属性只会使css/js选择器更易于编码。我确实如您所说做了更改。但是,在我按下按钮后,我使用此属性测试ONAME是否已发布。。。如果isset$_POST['oname']{echo Ok;}但是没有echo,那么这段代码有问题。下拉菜单为“工作”,但没有任何值。。echo…有些东西…您的字段名是“dropdown\u list”-而不是“oname”,这可能是问题所在吗?检查$\u POST['dropdown\u list']?另外-我在另一条评论中注意到您没有-更新代码以选择$oname而不是$select[@name=dropdown\u list];-虽然php中的代码可能会解决您的问题。您是对的:$\u POST['dropdown\u list']检查正常..我从SELECT元素中获取所选值..但是代码的ajax部分仍然不起作用。。。检查后,然后:$fname=htmlspecialcharstrim$_POST['fname']$oname=htmlspecialcharstrim$_POST['oname'];但我得到了未定义的索引oname错误。。。所以ajax部分仍然有问题……没有-$\u POST['oname']没有在ajax请求中设置-只需将您选择的名称更改为“oname”,您的许多问题可能会消失-您需要在ajax提交中将其从“dropdown_list”更改为“oname”。答案已更新,以包含该更改无星。我点击了粗体按钮,等等…随便。。我尝试了你的建议,但我对post数据有问题,因为:在我按下按钮后,我使用这段短代码来测试ONAME是否已发布:如果isset$_post['ONAME']{echo Ok;}但没有echo,那么这段代码有问题。下拉菜单为“工作”,但没有任何值。。回音…某物。。。