0

我有一个项目清单。我希望能够单击一个按钮将项目添加到 mySQL。在测试时,我只有 conf 框来显示 ID。麻烦的是我无法让它工作。我是 jQuery 和 AJAX 的新手。我认为这很容易。但是在没有运气的情况下从这里尝试了一堆不同的方法之后,我想我会问我的确切代码。

<page loaded with>
wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui-core');
wp_enqueue_script('jquery-ui-tabs');
wp_enqueue_script('jquery-ui-autocomplete');

<script>
function addCharItem () {
    var itemID = $(this).closest("td").find('input[name="itemID"]').val(); //this is close (I think) but message is showing as undefined.
//  var itemID = $("input").siblings(".itemID").val() //gets first ID in table only
    confirm ('The item ID is ' + itemID); 
//adding ajax and other stuff later.  
}
</script>

<html>
...
<tr>
  <td colspan="5"><dl><dt>Backpack (empty)</dt><dd></dd></dl></td>
  <td><input name="hdnItemID" type="hidden" value="742"/>
      <input name="btnAddItem" type="button" id="btnAddItem" value="+" onclick="addCharItem ()"/></td>
  <td><input name="btnBuyItem" type="button" id="btnBuyItem" value="$" /></td>
 </tr>
 ...
</html>

这都是从 Wordpress 中的模板 php 页面构建的。我不认为这些事情有任何奇怪之处。但如果有让我知道你可能还需要什么。感谢您的所有帮助和建议。我知道我一定错过了一些小东西,我只是不知道这还不够好,不知道是什么。

4

3 回答 3

1

您可以使用.siblings(selector)

 $(this).siblings('input[name="hdnItemID"]').val()

或者

 $(this).prev('input[name="hdnItemID"]').val()
于 2013-10-30T18:37:19.617 回答
1

用作hdnItemID您的名字,而不是itemID

$(this).closest("td").find('input[name="hdnItemID"]').val();
于 2013-10-30T18:37:45.947 回答
0

所以似乎出于某种原因,上面的代码没有抓取 HTML 元素。因此,我实现了 jQuery 按钮。

<script>
  $(function() {
    $( "input[type=submit], a, button" )
      .button()
      .click(function( event ) {
        event.preventDefault();
        var thisValue = $(this).val(); //to distinguish buttons
        console.log(thisValue);
        var itemID = $(this).prev('input[id="hdnItemID"]').val()
        confirm ('The item ID is ' + itemID);
            //do other stuff
      });
  });
</script>

<html changes>
...
<tr>
  <td colspan="5"><dl><dt>Backpack (empty)</dt><dd></dd></dl></td>
  <td><input class="itemID" id="hdnItemID" type="hidden" value="742"/>
    <input type="submit" value="+" /></td>
  <td><input class="itemID" id="hdnItemID" type="hidden" value="742"/>
    <input type="submit" value="$" /></td></tr>
...
</html>

我希望我能告诉你为什么它不起作用。看来我已经尝试了许多应该有效的不同方法。上面的建议也应该奏效。如果有人知道为什么会这样,请告诉我。我,我相信还有其他人很想知道这个“陷阱”问题。谢谢大家的提示!

于 2013-10-30T20:46:01.447 回答