2016-09-25 1 views
0

Ich freue mich über Ihre Antworten im Voraus.ID nicht zur Abfrage senden

Ich habe mehrere Seiten mit Befehlen, mit denen ich es zu tun habe, aber ich bin mir sicher, dass die Reparatur mir genug Wissen liefern wird, um die anderen zu beheben. In diesem Fall werde ich Ihnen den daytasks.php Abschnitt zeigen. Grundsätzlich kann ich Funktionsänderungen in der ersten Zeile vornehmen, aber die zweite, dritte usw. Zeilen können nicht geändert werden. Die Verwendung der Funktionstasten bewirkt nichts für diese Zeilen. daytasks.php Anrufe auf fetchdaytasks.php, um die Informationen basierend auf dem Datum zu erhalten, die ./functions/additions.js aufruft, um das Javascript durchzuführen, das auf die Funktionen zugehöriges Skript aufruft, um die angeforderte Aktion durchzuführen.

z.B. Ich habe zwei Aufträge, jeder in einem eigenen separaten <tr>, ich kann die erste Zeile ändern, die ID # 28 mit einer der Funktionen ist, aber die zweite Zeile, ID # 35 Ich kann nicht ändern, wird es einfach keine Änderungen vornehmen.

Portion daytasks.php

<div class="form-group"> 
       <br /> 
       <center> 
        <div class="input-group"> 
         <input type="date" id="search_text" name="search_text" /> 
        </div> 
        <div id="result"></div> 
       </center> 
</div> 

Portion fetchdaytasks.php

if(mysqli_num_rows($result) > 0) 
{ 
    while($row = mysqli_fetch_array($result)) 
    { 
     $id=$row['id']; 
     $orderdate=$row['date']; 
     $order=$row['order']; 
     $status=$row['status']; 
echo " 
       <td><center>$id</center></td> 
       <td><center>$orderdate</center></td> 
       <td><center>$order</center></td> 
       <td><center>$status</center></td> 
       <form> 
       <td><center><button type='button' name='btn_ship' id='btn_ship' class='btn btn-xs btn-success' data-id='$id'>SHIP</button> <button type='button' name='btn_unship' id='btn_unship' class='btn btn-xs btn-danger btn_delete'>UNSHIP</button> <button type='button' name='btn_bo' id='btn_bo' class='btn btn-xs btn-danger btn_delete'>BACKORDER</button> <button type='button' name='btn_fbo' id='btn_fbo' class='btn btn-xs btn-danger btn_delete'>FBO</button><br /> 
      <button type='button' name='btn_cancel' id='btn_cancel' class='btn btn-xs btn-danger btn_delete'>CANCEL</button> <button type='button' name='btn_return' id='btn_return' class='btn btn-xs btn-danger btn_delete'>RETURN</button> <button type='button' name='btn_dam' id='btn_dam' class='btn btn-xs btn-danger btn_delete'>DAMAGED</button> <button type='button' name='btn_lost' id='btn_lost' class='btn btn-xs btn-danger btn_delete'>LOST</button></td> 
      </form> 
      </tr> 
      "; 
    } 
} 
else 
{ 
    echo "No Orders For This Date"; 
} 

Portion additions.js

$("#btn_ship").click(function(){ 
var changeid = $(this).data('id');  
var myData={"changeid":changeid}; 
$.ajax({ 
    url : "./functions/shiporder.php", 
    type: "POST", 
    data : myData, 
    success: function(data,status,xhr) 
    { 
     $("#status_text").html(data); 
     $('#changeid').val(); 
    } 
}); 
}); 

$("#btn_fbo").click(function(){ 
var changeid = $('#changeid').val();  
var myData={"changeid":changeid}; 
$.ajax({ 
    url : "./functions/fboorder.php", 
    type: "POST", 
    data : myData, 
    success: function(data,status,xhr) 
    { 
     $("#status_text").html(data); 
     $('#changeid').val(); 
    } 
}); 
}); 

./functions/fboorder.php

<input type='hidden' id='changeid' name='changeid' value='$id' />

Das heißt, Sie mehrere Elemente mit einem "id" von 'changeid' haben wird:

<?php 
include_once('/home/brandina/public_html/eldis/config/config.php'); 
$changeid = $_POST['changeid']; 
if(mysqli_query($connect, "UPDATE `orders` SET `status`='FBO' WHERE `id`='$changeid'")) 
?> 

./functions/shiporder.php

<?php 
include_once('/home/brandina/public_html/eldis/config/config.php'); 
$changeid = $_POST['changeid']; 
if(mysqli_query($connect, "UPDATE `orders` SET `status`='SHIP' WHERE `id`='$changeid'")) 
?> 

Antwort

2

Weil Sie in fetchdaytasks sind Looping, wird diese Zeile wiederholt werden. In Ihrem JS haben Sie var changeid = $('#changeid').val(); Dies weiß nicht, welche #changeid Sie sprechen.

So würde ich den versteckten Eingang loswerden und mit "data-XXX" arbeiten und das auf die Buttons oder auf das Formular schreiben.

So <button type='button' name='btn_ship' id='btn_ship' class='btn btn-xs btn-success' data-id='$id'>SHIP</button> oder <form data-id='$id'>

Und dann die ID in dem JS wie erhalten: var changeid = $(this).data('id); falls Sie es auf der Schaltfläche tun.

+1

Fast korrekt. Wenn Sie mehrere HTML-Elemente mit derselben ID haben, gibt getElementById() eines der Elemente zurück. Es ist unbestimmt welcher (meist der erste von oben). – Shadow

+0

Ich freue mich über Ihre Kommentare. Ich möchte Sie nicht bitten, den JS-Code für mich zu erstellen, aber könnten Sie mir helfen, das JS-Skript zu ändern, damit ich mit der von Ihnen bereitgestellten Daten-ID arbeiten kann? Ich denke, dass diese Option funktionieren würde, und ich hatte es basierend auf früheren Skripts versucht, die ich zur Hand hatte, aber ich war nicht erfolgreich, höchstwahrscheinlich, weil ich es nicht richtig machte. –

+0

Ich habe meine Antwort so bearbeitet, dass sie Code enthält. – Omnisite

Verwandte Themen