2016-04-06 2 views
-2

Gewünschtes Verhalten: Ich möchte die Variable job_id über AJAX posten und eine weitere Abfrage verwenden, um weitere Informationen zum Job zurückzugeben.Wie kann ich die benötigte ID über AJAX mit Javascript & PHP weitergeben?

Problem:

  1. Ursprünglich wäre der AJAX-Request nur die job_id der letzten zurück Reihe veröffentlichen, unabhängig davon, mit Option I.

  2. Seit dem Versuch, mein Problem mit dem unten stehenden Code zu beheben, hat es gerade aufgehört, alle zusammen zu veröffentlichen.

die db Suche

$sql = "SELECT STUFF from THETABLE WHERE thisis LIKE '$search'"; 
$query = mysqli_query($db_conx, $sql); 
$numrows = mysqli_num_rows($query); 
} 

Erste meine Ergebnisse

while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
$job_id = $row['job_id']; 
$job_city = $row["job_city"]; 
$job_title = $row['job_title']; 
$pay_from = $row['pay_from']; 
$pay_to = $row['pay_to']; 
$job_desc = $row['job_desc']; 
$list .= '<div id="widgetsearchresults" data-id="<?php $job_id; ?>"  >'.$job_id.''.$job_title.'&nbsp|&nbsp'.$job_city.'<br> From £ '.$pay_from.' To £ '.$pay_to.'<input id="jobid" type="hidden" name="jobid">'.$job_id.'</input></div>'; 

} 

Buchen der JOB_ID

$(document).ready(function(){ 
$("#widgetsearchresults").click(function(){ 
    var url = 'thepage.php'; 
    var id = $(this).data("job_id"); 
    var postit = $.post(url, {id:id}); 
    postit.done(function(data) { 
}); 
}); 

}); 

File Handler:

if(isset($_POST["id"]) && $_POST["id"] != ""){ 

$thisjob = $_POST['idtoget']; 

echo $thisjob; 

} 
+2

Können Sie den Code teilen? – ficuscr

+0

Gib uns eine Pause. Zeig uns etwas Code! Natürlich könnten wir alle nur den Rauch in die Luft jagen und ein paar Vermutungen über das machen, was Sie getan haben und hoffen, dass einer von uns auf etwas Nützliches stößt ... Oh, richtig, nein, wir haben bessere Dinge zu tun. – RiggsFolly

Antwort

0

können Sie das Datenattribut verwenden:

<div class="get-more" data-id="<?php $id; ?>">WHATEVER</div> 

<script> 
$(document).ready(function(){ 
    $(".get-more").click(function(){ 
     var url = 'path-to-php-handler.php'; 
     var id = $(this).data("id"); 
     var postit = $.post(url, {id:id}); 
     postit.done(function(data) { 
      // what you echo on the php handler is returned as data - do what you want with data 
    }); 
}); 
</script> 
+0

Danke @peteboluc. Ich habe ein wenig mehr Details hinzugefügt, wie von anderen möglichen Antwortanbietern gewünscht. Ich habe meinen Code mit dem, was Sie bereitgestellt haben, aktualisiert. Immer noch ein paar Probleme. Es ist fast sicher, was ich getan habe, anstatt, was Sie zur Verfügung gestellt haben, dass das Problem verursacht, also nochmals danke. – weehaggis

+0

Ich glaube Ihr Problem liegt in der Tatsache, dass Sie in Ihren zurückgegebenen Ergebnissen 'id =" widgetsearchresults "' '' class = "widgetsearchresults" verwenden, da Ihr Code einfach die 'id =" widgetsearchresults "' an Die letzte div. Verwendung der Klasse statt der ID hier sollte das Problem lösen ... bemerken Sie in meinem Code 'var id = $ (this) .data (" id ");' was die Daten-ID für das spezifische div angeklickt identifiziert – petebolduc

+0

@weehaggins ... Ich bemerkte einen Fehler in meinem Code ... ich hatte: '$ (" # get-more "). click (function() {' es sollte '$ (" -more "). click (function() {' um das div als eine Klasse zu identifizieren ... sry darüber – petebolduc

0

Sie können auch jQuery attr

<div class="get-more" data-id="<?php $id; ?>">WHATEVER</div> 

<script> 
$(document).ready(function(){ 
$(".get-more").click(function(){ 
    var url = 'path-to-php-handler.php'; 
    var id = $(this).attr('data-id'); 
    var postit = $.post(url, {id:id}); 
    postit.done(function(data) { 
     // success action 
}); 
}); 
</script> 

und in Handler Datei ich glaube, Sie die ID zurück, so versuchen, dies zu wollen:

if(isset($_POST["id"]) && $_POST["id"] != ""){ 

    $thisjob = $_POST['id']; 

    echo $thisjob; 

    } 
Verwandte Themen