jquery用click函数增加php变量

时间:2015-02-01 16:34:50

标签: javascript php jquery

如果你能帮助我,我将非常感激。

仅当每个数据字符串具有唯一ID时,数据才会添加到数据库。通过单击按钮为每个字符串分配id是必要的。

如何转换变量$ i随每次单击而增加的代码,但开头的表中只有一个字符串?

 <?
    for($i=1; $i<2; $i++):
    ?>

                <tr>
                    <td>
                        <label>
                            <input type="text" name="<?=$i?>[file]" value="<? $p=$_POST[$i]; echo($p['file'])?>" >
                        </label>
                    </td>
                    <td>
                        <label>
                            <input type="integer" name="<?=$i?>[xx]" value="<? $p=$_POST[$i]; echo($p['xx'])?>" >

                        </label>
                    </td>
                    <td>
                        <label>
                            <input type="integer" name="<?=$i?>[yy]" value="<? $p=$_POST[$i]; echo($p['yy'])?>">
                        </label>
                    </td>
                    <td>
                        <button type="button" id="add">+</button>
                        <button type="button" id="del">-</button>
                    </td>
                </tr>
        <script>

            $(document).ready(function(){
                $("#add").click(function(){
                <?$i=$i+1;?>
                $('#dynamic').append('<tr><td><label><input type="text" name="<?=$i?>[file]" value=""></label></td><td><label><input type="integer" name="<?=$i?>[xx]" value=""></label></td><td><label><input type="integer" name="<?=$i?>[yy]" value=""></label></td><td><button type="button" class="add">+</button> <button type="button" class="del">-</button></td></tr>');

                });
            });
        </script>

    <?endfor;?>
            </tbody>
        </table>

        <input name="sub" type="submit" value="Create a graph" style="margin: 14px">


    </form>

2 个答案:

答案 0 :(得分:1)

一种解决方案是在每次点击时从数据库中获取$ i的值并将其递增。另一种解决方案是在会话中存储$ i的值,并在每次点击时获得该值。

答案 1 :(得分:1)

如评论中所述,您似乎正在尝试在客户端功能中运行服务器端代码。这将无法正常工作 - PHP的行将在标记发送回浏览器并呈现之前执行,单击按钮时此变量不会发生任何事情。

我的方法是对传入了action参数的页面进行ajax调用(例如,vote.php?action = add或vote.php?action = del)。然后在DB中增加或减少它。

现在,如果您希望在此页面上显示新值(例如,在两个按钮之间,与StackOverflow一样),则应使用$(selector).load("vote.php?action=add|del"),然后确保此页面仅输出新结果。