是否可以使用jQuery重命名按钮的名称,以根据按钮的名称执行不同的php脚本?

时间:2013-12-19 09:52:28

标签: php jquery button rename

我有一个带有导航列表的脚本(星期一到星期日),我想根据哪一天有“活动”类来更改按钮的名称。我知道如何选择具有活动类的元素(以及如何更改类)。要接收活动类的名称,请使用以下代码:

var day=$('#navi ul li a.active').html();

但是我无法更改提交按钮的名称。我试过这个:

$('#loadStandard').name = $('#loadStandard').name + "_" + day;

这没有任何改变。我也尝试过:

$('#loadStandard').name= "bla";

但它没有用。根据{{​​3}},这是正确的语法。我的表格如下:

<form action="<?php echo plugins_url('plugin_directory/my_plugin.php'); ?>" method="post">
<input type="submit" name="loadStandard" class="loadStandard" id="loadStandard" value="Load standard values">
</form>

我想更改按钮的名称,以便在php脚本中创建不同的if语句。有点像这样:

if (isset($_POST['loadStandard_monday'])) {
    do something;
}
elseif(isset($_POST['loadStandard_tuesday'])){
    do something else;
}

甚至可能吗?我究竟做错了什么?请帮我提供一些提示,链接或代码片段!

2 个答案:

答案 0 :(得分:1)

与提及的评论一样,您需要使用.attr('name', day)

或者我可以建议您只使用隐藏值吗?

<input type="hidden" name="loadStandard[day]"  id="loadStandard_day" value="" />

$('#loadStandard_day').val(day);

<?php
if ($_POST['loadStandard']['day'] == '...')
    //...

答案 1 :(得分:1)

奇怪的方法。你可以这样做:

var day=$('#navi ul li a.active').html(),
    submit_name = $('#loadStandard').attr('name');
$('#loadStandard').attr('name', submit_name+ "_" + day);

如果你使用一些隐藏的字段会更好:

<input type="hidden" name="day" id="id-day" value=""/>

var day=$('#navi ul li a.active').html();
    $('#id-day').val(day);

并在服务器端:

switch($_POST['day']) {
   case "sunday":
      ...
      break;
   case "monday":
      ...
      break;
   ...
}