2016-11-21 7 views
1

Hier mein dynamisches Skript:Wie kann ich dynamische Werte senden Ajax

<a href="inv-controller.php?res=yes&id_job=<?=$myjobs['id_job'];?>" class="btn btn-primary">Accept And Send Invite To All Students</a> 
<a href="inv-controller.php?res=no&id_job=<?=$myjobs['id_job'];?>" class="btn btn-default">Reject And Delete</a> 

Aus den obigen zwei Verbindungen gibt es zwei dynamische Parameter, die ich will mit Ajax-Aufruf senden, wie kann ich das tun ..?

Dort gibt es zwei Schaltflächen Akzeptieren und ablehnen. Ich kann dies mit Core PHP tun, und ich möchte dies tun, ohne die Seite zu aktualisieren.

Hier was ich versucht habe.

<script type="text/javascript"> 
    function jobResponse(jobId){ 
     var jobid = $(jobId).attr('id'); // im confusing in this line 
     $.ajax({ 
      method: "POST", 
      url: 'inv-controller.php', 
      data: {action: "jobreplay", value: jobid}, 
      dataType: "json", 
      success: function(response) { 
       //blah blah blah 
      } 
     }); 
    } 
</script>  

wie kann ich umschreiben die beiden <a> Tags nach Ajax.

+1

Sie Javascript in href verwenden können, genau wie 'Reject And Delete") ' –

+0

werden, dass die Arbeit ohne die Seite zu aktualisieren und wie bekomme ich die Antwort, ob es Erfolg ist oder nicht –

+2

@CrisimIlNumenoreano können Sie, aber bitte nicht. Es ist nicht die 90er Jahre. Verwenden Sie unaufdringliche Event Handler –

Antwort

3
<a href="javascript:;" class="btn btn-primary" onclick="jobResponse("yes",<?php echo $myjobs['id_job'];?>)">Accept And Send Invite To All Students</a> 
<a href="javascript:;" class="btn btn-default" onclick="jobResponse("no",<?php echo $myjobs['id_job'];?>)">Reject And Delete</a> 

und in Funktion wie diese können Sie in Ihrer Ajax PHP-Datei

function jobResponse(type,jobId){ 

var frm_data = { type : type, 
       jobId : jobId 
       } 
    $.ajax({ 
     method: "POST", 
     url: 'inv-controller.php', 
     data: frm_data, 
     dataType: "json", 
     success: function(response) { 
      //blah blah blah 
     } 
    }); 
} 

bekommen zu bekommen. frm Daten als Post.

2

Es wird besser sein data-* Attribute zu verwenden wie:

<a href="inv-controller.php" data-res="yes" data-job-id="<?=$myjobs['id_job'];?>" class="btn btn-primary inv-controller">Accept And Send Invite To All Students</a> 
<a href="inv-controller.php" data-res="no" data-job-id="<?=$myjobs['id_job'];?>" class="btn btn-default inv-controller">Reject And Delete</a> 

anhängen Dann Ereignis klicken auf die Links a mit Klasse inv-controller:

$('a.inv-controller').on('click', function(e){ 
    e.preventDefault(); 

    var res = $(this).data('res'); 
    var job_id = $(this).data('job-id'); 
    var url = $(this).attr('href'); 

    $.ajax({ 
     method: "POST", 
     url: url, 
     data: {action: "jobreplay", value: job_id}, 
     dataType: "json", 
     success: function(response) { 
      //blah blah blah 
     } 
    }); 
}) 

Hoffnung, das hilft.

+0

' Delegierte-Ereignisse' ? Warum ? – Rayon

+1

Richtig, aktualisierte meine Antwort, danke für Ihre Intervention. –

1

Sie können wie folgt tun, schauen Sie sich die Parameter jobId, um es in Wert übergeben: jobid

 <a href="javascript:jobResponse(<?=$myjobs['id_job'];?>)" class="btn btn-primary">Accept And Send Invite To All Students</a> 


<script type="text/javascript"> 
function jobResponse(jobId) { 
    $.ajax({ 
     method: "POST", 
     url: 'inv-controller.php', 
     data: { action: "jobreplay", value: jobId }, 
     dataType: "json", 
     success: function (response) { 
      //blah blah blah 
     } 
    }); 
} 

Verwandte Themen