使用按钮将变量传递给函数并通过ajax提交

时间:2011-07-25 20:34:19

标签: php javascript jquery ajax

我正在尝试设置一个多选框,其中包含1个主选择框和一个动态数量的子框。

例如: 我有10个地区,在这10个地区内可以有100个县。我正在使用jquery来使用“Add”和“Remove”按钮在不同的选择器框之间移动这些县。

现在,挑战是创建javascript以通过ajax提交更改。 我知道我现在正在通过PHP使javascript动态化,所以我想知道更简单的方法,以及如何将这些变量传递到数据字符串中。

现在我正在使用它:

<script type="text/javascript">
$().ready(function() {
<?
$territories = $db->get_results("SELECT * FROM tbl_territories");
foreach ($territories as $territory) {
    echo "
    $('#remove-{$territory->id}').click(function() {
        return !$('#territory-{$territory->id} option:selected').remove().appendTo('#county');
        $.ajax({
            type: 'POST',
            url: 'add.territoryselect.php',
            data: {
                action: 'remove',
                county: $(button).siblings('[name=/"ClientId/"]').attr(/"id/"),
            success: function(msg){
                alert( 'Data Saved: ' + msg );
            }
        });
    });
    $('#add-{$territory->id}').click(function() {
        return !$('#county option:selected').remove().appendTo('#territory-{$territory->id}');
    });";
}
?>
});
</script>

页面如下所示:

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
            <?
        foreach ($territories as $territory) {
        echo "
        <tr valign='middle'>
            <td align='center'>
                <a href='#'>{$territory->name}</a><br>

            </td>
            <td align='center'><label for='county'></label>
                <select style='width: 200px;' name='territory-{$territory->id}' size='5' multiple='multiple' id='territory-{$territory->id}'>";
                foreach ($counties as $county) {
                    if ($county->territory == $territory->id) {
                        echo "<option value='{$county->id}'>{$county->county}, {$county->state}</option>";
                    }
                }
                echo "</select>
            </td>
  <td align='center'><input type='submit' class='button green size-120 fl' value='&lt;&lt; Add' id='add-{$territory->id}'/><br /><br />
                        <input type='submit' class='button fl size-120' value='Remove &gt;&gt;' id='remove-{$territory->id}' />
      </td>
</tr>";
        }
        ?>
          </table></td>
        <td align="center" valign="top"><select style="width: 200px;" name='county' size='50' multiple='multiple' id='county'>
            <?
                foreach ($counties as $county) {
                    if (is_null($county->territory)) {
                        echo "<option value='{$county->id}'>{$county->county}, {$county->state}</option>";
                    }
                }
                ?>
          </select></td>
      </tr>
    </table>

显然这个页面现在不能正常工作,因为ajax部分是不完整的,因为我确信有更好的方法可以做到这一点,但我的jquery / javascript知识缺乏。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

/"

应该是

\"

您还可以使用其他语法:

echo <<< EOD

your js here

EOD;

或者你应该使用模板引擎