Some jQuerisms:
Instead of var rightdiv =document.getElementById(curdiv);
use var rightdiv = $("#" + curdiv + "");

Instead of onClick="createRockDescSearch();"
use $("#addRockButton").click( function() { createRockDescSearch() } );

Instead of  <body onLoad="createRockDescSearch();">
Use: $(document).ready(function(){
createRockDescSearch();

//rest of your code
});

Instead of document.createElement("option");
Use append, or flydom (http://flydom.socianet.com/).  Check
jquery.com/apifor lots of options on that.

I think you are getting messed up with the document.getbyID.  That doesn't
return a jQuery object.  It returns a DOM object.
Use jQuery all the way and you will find it all gets easier.

I hope this helps a little.

Glen

On 10/17/07, Cut <[EMAIL PROTECTED]> wrote:
>
>
> I'm creating a js/jquery script that will accept a <input="text">
> rock, submit the rock to a database via php, and use the xml returned
> to populate a select list, which will replace the text input.
>
> I have the multiple input generation working, database submit working,
> and I can parse the xml.
>
> I can't seem to get a reference back to the correct div that holds the
> correct <input="text"> so I can replace it.
>
>
>                 CODE:
> //I'm a javascript/jquery beginner, so I'm sure there are multiple
> mistakes.
>
>     <script type="text/javascript" src="jquery.js"></script>
>     <script type="text/javascript">
>
> //--ajaxError handling snipped--
>
>
>         //Global variables
>         var numDivs = 0;
>         var divstring = "div";
>
>         //This creates a new text input when the ADD ANOTHER ROCK is
> clicked.
>         function createRockDescSearch() {
>
>           //this creates a div to hold the input element and search+
> remove buttons
>           //the divid increments so that each div has its own unique
> id
>
>           var newDiv = document.createElement("div");
>           var divid = divstring + numDivs;
>           $(newDiv).attr("id", divid);
>           $('<input type="text">').appendTo(newDiv);
>           $('<input type="button">').attr("value", "Search For
> Rock").click(function()
>               {getRockList(this);}).appendTo(newDiv);
>           $('<input type="button">').attr("value", "Remove This
> Rock").appendTo(newDiv);
>           $(newDiv).appendTo("#rock-form");
>           numDivs = numDivs + 1;
>         } //end createRockDescSearch()
>
>          //this function gets the xml from the php-database script
>         function getRockList(self) {
>           var currentdiv = $(self).parent().attr("id");
>           var foodtext =
> $(self).parent().children(":first").attr("value");
>
>           $.ajax({
>               type: "GET",
>               url: "getRockList.php",
>               data: { currentdiv: currentdiv , rocktext: rocktext },
>               datatype: 'xml',
>               error: function() {
>                     alert('Something is not right with ajax function.');
>                         },
>               success: function(xml){
>                         var curdiv = $("currentdiv",
> xml).text();                     //for
> getting id
>                         var selectList = document.createElement("select");
>
>                         $("rock", xml).each(function() {
>                           var optn = document.createElement("option");
>                           optn.text = $(this).text();
>                           $(selectList).append(optn);
>                           });//end each function
>
>                          //FIND CORRECT DIV
>
>                         //DOES NOT WORK IN JAVASCRIPT, MUCH LESS
> JQUERY
>                         var rightdiv =
> document.getElementById(curdiv);
>
>                         //REPLACE DIV's TEXT INPUT WITH THE SELECT
> LIST
>                         $(rightdiv).children(":first").remove();
>                         $(selectList).prependTo(rightdiv);
>
>          }//end success function
>        }); //end ajax function
>        } //end getRockList()
>
>     </script>
>   </head>
>   <body onLoad="createRockDescSearch();">
>     <div id = "rock-form">
>     </div>
>     <br />
>     <div id = "bottom-buttons">
>       <input type="button" id="addRockButton" value="Add Another Rock"
> onClick="createRockDescSearch();" />
>       <input type="button" id="searchButton" value="Search for
> Nutrients" />
>     </div>
>     </body>
>   </html>
>
>

Reply via email to