2016-09-25 90 views
0

我很感謝您的回覆。ID不提交查詢

我有幾頁我正在處理的訂單,但是我確定修復一個將爲我提供足夠的知識來修復其他人。在這種情況下,我會告訴你daytasks.php部分。基本上,我可以對第一行進行功能更改,但第二行,第三行等行不能修改。使用功能按鈕對這些行不做任何處理。 daytasks.php調用fetchdaytasks.php來獲取基於日期的信息,該日期調用./functions/additions.js來執行Javascript,該JavaScript調用相應的腳本來執行所請求的動作。

例如我有兩個命令,每個都在自己單獨的<tr>,我可以修改第一行,這是ID#28與任何的功能,但第二行,ID#35我不能修改,它根本不會做任何改變。

部的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> 

部的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"; 
} 

部的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

<?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'")) 
?> 

回答

2

,因爲你在fetchdaytasks循環,該行會被重複: <input type='hidden' id='changeid' name='changeid' value='$id' />

這意味着你將擁有帶有 'changeid' 的 「ID」 的多個元素。在你的JS你有var changeid = $('#changeid').val(); 這不知道你正在談論哪個#changeid。

所以我會擺脫隱藏的輸入和「data-XXX」的工作,並把它放在按鈕或窗體上。

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

然後得到像JS的ID:如果你做的按鈕 var changeid = $(this).data('id);

+1

幾乎正確。如果您有多個具有相同ID的html元素,則getElementById()會返回其中一個元素。不確定哪一個(通常是頂部的第一個)。 – Shadow

+0

我很欣賞你的評論。不要問你爲我建立JS代碼,但你能幫我修改JS腳本,以便我可以使用你提供的數據ID嗎?我認爲這個選項會起作用,而且我根據之前手頭的腳本嘗試過,但是我沒有成功,很可能是因爲我沒有做正確的選擇。 –

+0

我編輯了我的答案以包含一些代碼。 – Omnisite