2009-03-28 5 views
1

Ich versuche eine Seite zu erstellen, mit der ein Benutzer ein Bild löschen kann, wenn er angemeldet ist. Ich übergebe die Bild-ID über die URL, wenn die Schaltfläche ist geklickt. Das Problem ist, dass es die Bild-ID abfängt, aber wenn ich auf Löschen klicke, übergibt es den Wert der Schaltfläche an die URL anstelle der Bild-ID. Es sieht wie user_acc_images.cfm?delete=Delete statt user_acc_images.cfm?uploaded_image_id=1 im Browser aus.ColdFusion URL-Eigenschaft gibt den Namen der Schaltfläche anstelle des erforderlichen Felds (ID) zurück

Hier ist mein Code:

<cfif isdefined("session.username")> 
<cfoutput><h3 class="uname">Hello #session.username# </h3></cfoutput></cfif> 

<h2>Your Uploaded Images</h2> 
<p>On this page you can view the list of all the images you uploaded.You can also delete some of your photographs if you wish.</p> 
    <table cellspacing="25">  
    <cfif isDefined("session.username")> 
    <cfinvoke component="cfc.user_acc_images" method="viewimages" returnvariable="vimages"> 
     <cfoutput query="vimages"> 
      <tr> 
      <cfform name="formurl" action="http://www.humbermedia3.ca/portfolio0809/farnauz/AcePhotographyMain/user_acc_images.cfm?uploaded_photo_id=#uploaded_photo_id#" method="get"> 
      <td align="left"> 
       <img src="#uploaded_photo_name#" name="photo_name" width="200" height="200"/> 
       </td></tr><tr><td> 
       <b>Uploaded on: </b>#upload_date# <br/><br/> 
       <!---<button type="submit" name="delete" value="Delete" class="button" >---> 
       <input type="submit" name="delete" value="Delete" class="button" /> 
       <br/><br /><hr/> 
      </td> 
      </tr></cfform> 
      </cfoutput> 
    </table> 

<cfelse> 
    <cfoutput> 
     <h3>Sorry you cannot access this page.<h3> 
      <p> 
       You have to be logged in to view your uploaded images.<br/><br/> 
       Click<a href="login.cfm"> here </a>to log in.<br/> 
       Dont have an account? Click<a href="register.cfm"> here </a>to create a new account. 
      </p> 
    </cfoutput> 
</cfif> 

<cfif isDefined("form.delete")> 
    <cfinvoke component="cfc.user_acc_images" method="deleteimage" returnvariable="dimage"> 
    <cfinvokeargument name="url" value="#URL.uploaded_photo_id#"> 
    <cfoutput>#URL.uploaded_photo_id#</cfoutput> 
</cfif> 

Antwort

2

Paolo richtig ist, aber ich würde auch fügen Sie hinzu, dass der Grund, warum Sie dieses Problem haben, ist, weil wenn Sie ein Formular GET ausführen, werden alle URL-Variablen in der Aktions-URL nicht weitergegeben. Seine Lösung ist am besten, aber Sie könnten sie auch in einen Formular-Post ändern und dann werden die URL-Variablen, die Sie durch das Aktionsattribut senden, durch weitergeleitet.

2

Entfernen Sie den ?uploaded_photo_id=#uploaded_photo_id# Teil der URL-Zeichenfolge in der Form, und fügen Sie einen versteckten Eingang wie folgt aus:

<input type='hidden' name='uploaded_photo_id' value='#uploaded_photo_id#'> 
2

ändern method = "erhalten" zu method = "post"

Verwandte Themen