2016-10-09 1 views
1

Ich habe die mysqli Abfrage, die nur den letzten Datensatzwert mit allen Zeilen zurückgibt, wenn ich die automatische Aktualisierung mit unter Code verwende, wenn ich nicht die automatische Aktualisierung verwenden dann funktioniert es gut. Nur Problem, das ich gegenüberstelle, wenn ich die automatische Aktualisierung verwende.PHP mysql gibt nur die letzte Zeile zurück, wenn ich die automatische Aktualisierung verwende

$(document).ready(function(){ 
    refreshTable(); 
}); 

function refreshTable(){ 
    $('.tableHolder').load('itemtotal_cart_checkout.php', function(){ 
     setTimeout(refreshTable, 1000); 
    }); 
} 

Wie kann ich das beheben bitte helfen.

$ses_mem = $_SESSION['ses_user_id']; 
$getItem = $_GET['item_id']; 

$order_temp = "select * from temp_cart where item_id='".$getItem."' AND ses_mem='".$ses_mem."' order by id"; 
$tordera = $db->query($order_temp); 
$torder = $tordera -> fetch_assoc(); 

Antwort

1

Ihr PHP-Code erwartet item_id GET-Parameter. So sollten Sie es von JavaScript passieren:

$('.tableHolder').load('itemtotal_cart_checkout.php?item_id=' + itemId, 
    function(){ 
    setTimeout(refreshTable, 1000); 
    }); 

Hier sind, wie Sie item_id aus dem aktuellen Abfrage-String in JavaScript zu bekommen:

var m = location.search.match(/^.*[\?&]item_id\=(\d+)/); 
var itemId = m && m.length >= 2 ? m[1] : 0; 

Wenn jedoch die aktuelle Seite ist eine Mischung aus PHP und HTML mit der JavaScript oben erwähnt, dann einbetten nur PHP in JavaScript:

<script> 
/* skipped original code */ 
$('.tableHolder').load('itemtotal_cart_checkout.php?item_id=' + <?php 
    echo isset($_GET['item_id']) ? (int) $_GET['item_id'] : 0; 
?>, 
    function(){ 
    setTimeout(refreshTable, 1000); 
    }); 
/* skipped original code */ 
</script> 

Schließlich, wenn die JavaScript in einer separaten Datei ausgeführt wird, dann benötigen Sie eine JavaScript-Funktion mit ein Argument für die Artikel-ID. Zum Beispiel in einigen script.js Sie könnten eine ähnliche Funktion wie die haben folgende:

function refreshTable(itemId) { 
    $('.tableHolder').load('itemtotal_cart_checkout.php?item_id=' + itemId, function() { 
     setTimeout(function() { refreshTable(itemId) }, 1000); 
    }); 
} 

Dann ist es von PHP Sie anrufen können auf diese Weise:

<script> 
$(document).ready(function(){ 
    refreshTable(<?php echo isset($_GET['item_id']) ? (int) $_GET['item_id'] : 0; ?>); 
}); 
</script> 

Vielleicht möchten setInterval verwenden anstelle von rekursiven Aufrufe an setTimeout, nebenbei bemerkt.

+0

ich will item_id in Javascript machen, wie 'item_id = 'und hol es ** itemtotal_cart_checkout.php ** –

+0

@FahadAlmehaini, dann musst du' $ _GET ['item_id'] 'an JavaScript-Code übergeben. Wenn der JavaScript-Code in ein PHP-Skript eingebettet ist (wenn die aktuelle Seite eine Mischung aus PHP, HTML und JavaScript ist), dann einfach 'load ('itemtotal_cart_checkout.php? Item_id =' + ... ' –

+0

können Sie bitte den Code entsprechend anpassen, bitte Entschuldigung dafür –

0

Pass item_id Variable durch diesen Code PHP:?

$(document).ready(function(){ 
    refreshTable(); 
}); 

function refreshTable(){ 
    $('.tableHolder').load('itemtotal_cart_checkout.php<?php echo '?item_id=1'; ?>', function(){ 
     setTimeout(refreshTable, 1000); 
    }); 
} 
Verwandte Themen