2014-12-18 2 views
0

У меня следующие две страницы. Index.php включает purchase_pending.php через PHP. В первый раз, когда страница загружает форму, отлично работает, но когда DIV (#pp) обновляется через 10 секунд, FORM не работает. Есть ли решение для этого? Или, если я смогу это сделать через AJAX, может кто-нибудь помочь мне с кодом. Поскольку вы видели мои коды, вы, вероятно, знаете, что я новичок. Спасибо заранее.Форма в PHP внутри автообновления тега DIV не будет работать

index.php

<script type="text/javascript"> 
function update(){ 
    $('#pp').load('/status/purchases_pending.php'); 
} 
setInterval(update, 10000); 
</script> 
<div class="content"> 
<div class="content_left"> 
<p> 
<h3>Pending Purchases</h3> 
<div class="user_content"><div id="pp"><?php include ($purchases_pending); ?></div></div> 
</p> 

purchases_pending.php

<?php 
$CONFIG = $_SERVER["DOCUMENT_ROOT"]. "/config/"; 
include($CONFIG. "pages.php"); 
include($db); 

$sql = "SELECT * FROM account WHERE status='Pending' AND type='Purchase'"; 
$query = mysqli_query($conn, $sql); 

if (mysqli_num_rows($query) > 0) { 

echo '<table>'; 
echo '<tr> <th align="left">Party</th> <th>Box</th> <th>Rate</th> <th>Status</th> </tr>'; 
while ($result = mysqli_fetch_assoc($query)) { 

$id = $result['id']; 
$party = $result['party']; 
$box = $result['box']; 
$rate = $result['rate']; 
$amount = $result['amount']; 
echo '<form action="" method="post">'; 
echo '<tr>'; 
echo '<td>' . $party . '</td>'; 
echo '<td align="center">' . $box . '</td>'; 
echo '<td align="right">' . $rate . '</td>'; 
echo '<td align="center"><input type="checkbox" name="status[]" id="status[]" value="' . $id . '" /></td>'; 
echo '</tr>'; 
} 
echo '</table>'; 
echo '<input type="submit" name="submit" value="Completed" class="input" />'; 
echo '</form>'; 
} 
else { 
    echo 'Hooray...No pending purchases'; 
} 

if(isset($_POST['submit']) && $_POST['submit']!="") { 
$status = $_POST['status']; 
$count = count($_POST['status']); 
for($i=0;$i<$count;$i++) { 
$update_purchases = "UPDATE account SET status='Completed', user_confirm='$user_confirm' ,user_confirm_time=current_timestamp WHERE id='$status[$i]'"; 
$query_purchases = mysqli_query($conn, $update_purchases); 
} 
header ('location:/'); 
} 
?> 

ответ

0

JS нагрузки должна быть в document ready для того, чтобы работать.

Короткая рука

$(function() { 

    var update = function() {    

     $('#pp').load('/status/purchases_pending.php'); 

     setTimeout(update, 10000); 
    } 

    update(); 

}); 

Переместить этот код в index.php, так как это уже не существует на странице, потому что он получает удаляется при замене Див #PP

if(isset($_POST['submit']) && $_POST['submit']!="") { 
    $status = $_POST['status']; 
    $count = count($_POST['status']); 
    for($i=0;$i<$count;$i++) { 
    $update_purchases = "UPDATE account SET status='Completed', user_confirm='$user_confirm' ,user_confirm_time=current_timestamp WHERE id='$status[$i]'"; 
    $query_purchases = mysqli_query($conn, $update_purchases); 
} 

Чтобы объяснить PHP визуализирует сервер как html, он читает сверху вниз. Итак, когда js вставляет его, он не вставляет код, а представляет собой рендеринг кода. Ajax используется для отправки данных, но при загрузке данные не отправляются, кроме как дать мне форму. Сообщение не существует, потому что оно уже отображается. При использовании include он «вставлен» как часть кода, который должен быть выполнен и, таким образом, работает.

+0

не работает !!! –

+0

@AhamedZulfan - Переместите почтовый индекс, а также форма не будет туда, где без него. – Demodave

0

нагрузки функция JS вне JQuery

<script> 
    function update(){ 
    $('#pp').load('/status/purchases_pending.php'); 
    } 
</script> 

$(document).ready(function() { 
    setInterval(update, 10000); 

}); 
Смежные вопросы