<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
    <title>Untitled Page</title>
    
</head>
<script language ="javascript">
function chkRadio()
{
   
    column =document.list_photo.hidCounter.value;
    var total = 0;
    var file =0;
    
    for(var i=1; i<=column; i++)
    {
        var objId = "chkBuy" + i;
        var obj = eval("document.list_photo." + objId);
        document.list_photo.totalcredit.value = obj.length;
      for(var j=0; j<obj.length; j++)
      {
        if(obj[j].checked && obj[j].value != 0)
        {
        total += eval(obj[j].value);
        file++;
        }
      }
    }
    document.list_photo.total_file.value =file;
    document.getElementById('totalfile').innerHTML =file;
    document.getElementById('creditcost').innerHTML =total;
}
    
function chkPhoto(photoid)
{
        delim ='.';
        v =photoid;
        v=v+delim;
     var oldv=document.getElementById('photo').value;
     document.getElementById('photo').value=oldv+v;
}

function chkValue()
{
    column =document.list_photo.hidCounter.value;
    var checked =false;
    if(document.list_photo.chkAgree.checked ==false)
    {
        alert("Please agree To terms");
        return false;
    }
    
    if(document.list_photo.total_file.value =="")
    {
            alert("Please select the images you wish to download.");
            return false;
    }
        document.list_photo.hidSubmit.value ="Submit";
        boxid =document.list_photo.hidboxid.value;
        document.list_photo.action ="lightbox_download.asp?boxid="+ boxid ;
        document.list_photo.submit();
}
 
</script>
<body>
<a href="list_lightbox.asp">List lightbox</a><br /><br />
<form name="list_photo" id="f1" method="post">
<table border="1">

    <tr>
        <td valign="top">IMAGE DISPLAY HERE</td>
        <td  valign="top"><a href ="view_photo.asp?photoid=1">dog</a><BR /> alice</td>
        <td>
            
            <table>
            
                <tr>
                <td>XSmall&nbsp; - 100 x 100 px @ 72 Dpi  </td>
                <td>- 1Credit</td>
                <td><input type="Radio" name="chkBuy1" value="1" onClick="chkRadio();chkPhoto('1');" /></td>
                </tr>
            
                <tr>
                <td>Small&nbsp; - 200 x 280 px @ 72 Dpi  </td>
                <td>- 3Credits</td>
                <td><input type="Radio" name="chkBuy1" value="3" onClick="chkRadio();chkPhoto('1');" /></td>
                </tr>
            
                <tr>
                <td>Medium&nbsp; - 500 x 600 px @ 300 Dpi  </td>
                <td>- 5Credits</td>
                <td><input type="Radio" name="chkBuy1" value="5" onClick="chkRadio();chkPhoto('1');" /></td>
                </tr>
            
                <tr>
                    <td colspan="2" align="right">Skip This image file</td>
                    <td>
                    <input type="Radio" name="chkBuy1" value="0" onClick="chkRadio(this.value,'1')"  checked />
                    <input type="text" name="hiddX" value="1" size="5"/>
                    <input type="hidden" name="totalrecord1" value="" size="5"/>
                    </td>
                </tr>
            
            </table>
          </td>
    </tr>
    <tr>
        <td valign="top">IMAGE DISPLAY HERE</td>
        <td  valign="top"><a href ="view_photo.asp?photoid=3">cat</a><BR /> lenny</td>
        <td>
            
            <table>
            
                <tr>
                <td>Small&nbsp; - 200 x 250 px @ 72 Dpi  </td>
                <td>- 3Credits</td>
                <td><input type="Radio" name="chkBuy2" value="3" onClick="chkRadio();chkPhoto('3');" /></td>
                </tr>
            
                <tr>
                <td>XSmall&nbsp; - 250 x 250 px @ 72 Dpi  </td>
                <td>- 1Credit</td>
                <td><input type="Radio" name="chkBuy2" value="1" onClick="chkRadio();chkPhoto('3');" /></td>
                </tr>
            
                <tr>
                    <td colspan="2" align="right">Skip This image file</td>
                    <td>
                    <input type="Radio" name="chkBuy2" value="0" onClick="chkRadio(this.value,'2')"  checked />
                    <input type="text" name="hiddX" value="2" size="5"/>
                    <input type="hidden" name="totalrecord2" value="" size="5"/>
                    </td>
                </tr>
            
            </table>
          </td>
    </tr>
 
    <tr>
        <td colspan="3">
        <input type="text" name="photo" id="inputs"  />
     
        
        </td>
    </tr>
    
 </table>
</form>
</body>
</html>

hi there..i need some help. above is my HTML code from my view source page. i got a list of dynamic radio button wif the radio button name is differnt . in the radio button, when onclick i call two function. for the 2nd fucntion, i need to pass 1 kind of value that is photoid (not the radio button own value) to the function. chkPhoto('3');" . wat i need to do is, when onclick any radio button, it will directly assign the PARAMETER photo id into the text box (hidden field) with the delimeter '.'(dot). but wat i have did is...this will add continous when i click on the radio button. let said, from the code. i have photo id 1,3. first time, i click the radio button, it will asssing the value into the text box. but after that, i click the radio button again, it add the valeu again. wat i wan is it jz will display 1.3 not everytime i click the radio button, it will be like this 1.1.3.3.1.1.3. soli for the poor explaination. hope u all understand..plz help..urgent..thank you.. hope u all can help me check this code..thank you very much

Dani AI

Generated

Quick summary and two immediate fixes found in the posted code: the hidden field that chkPhoto writes to is referenced with getElementById('photo') but the form actually has id="inputs", and chkPhoto blindly appends photoid + "." every click so the same ID is added repeatedly. As suggested, avoid eval when walking form elements — form element access or query selectors is safer — and prefer checking for the specific photo ID rather than testing only for the presence of a dot.

Recommended behavior: make the photo input a true hidden field (for example type="hidden" id="photo" name="photo"), change radio onclick handlers to pass both the photo ID and the radio value (e.g. onClick="chkRadio(); manageSelectedPhotos('3', this.value);") and use a helper that adds the photo ID only when a non‑zero option is selected and removes it when the skip (value="0") option is chosen. That keeps the dot‑separated list unique and in sync with selections.

Example helper (compatible with older browsers):

/* call from each radio: manageSelectedPhotos('3', this.value) */
function manageSelectedPhotos(photoId, selectedValue) {
  var hiddenEl = document.getElementById('photo'); // ensure input id="photo"
  var sep = '.';
  var raw = hiddenEl.value || '';
  var parts = raw ? raw.split(sep) : [];

  // compact empty entries
  for (var k = parts.length - 1; k >= 0; k--) {
    if (parts[k] === '') parts.splice(k, 1);
  }

  // find existing index (no Array.indexOf for older IE)
  var pos = -1;
  for (var j = 0; j < parts.length; j++) {
    if (parts[j] === photoId) { pos = j; break; }
  }

  if (selectedValue !== '0') {
    if (pos === -1) parts.push(photoId);   // add if missing
  } else {
    if (pos !== -1) parts.splice(pos, 1);  // remove on "skip"
  }

  hiddenEl.value = parts.join(sep);
}

Additional notes: pick a delimiter that cannot appear in photo IDs (or store a JSON array in the hidden field), update any total/file counters by splitting the hidden value and using its length, and validate the final list on the server (Classic ASP) rather than trusting client data.

> var obj = eval("document.list_photo." + objId);
Don't use eval. It's like using a powerhouse to light a single bulb. The same thing can be done using var obj = document.forms['list_photo'].elements[objId . The same can be said about the other places you have used eval. Read the Javascript FAQ for more details.

> wat i wan is it jz will display 1.3 not everytime i click the radio button
If you are pretty sure that the format will always be x.y (e.g. 1.4), you can search for a dot(.) at the start of the function and if one is present, skip the remaining function. Or you can set a flag as soon as you are done and skip the function if the flag value is true.

var delim = ".";
var oldv = document.getElementById('photo').value;
if(oldv.indexOf(delim) == -1) {
   /* the remaining function goes here */
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.