2014-09-05 149 views
-1

希望有人可以幫助使用此代碼。我有一個PHP文件與foreach循環來從MySQL數據庫中獲取數據。當用戶點擊php文件中的更新時,這個JS腳本被調用。我正在使用「this」來獲取單個值。我遇到的問題是沒有任何東西傳遞給JS腳本。將Foreach數據從PHP傳遞到Ajax

這裏是PHP代碼,PHP代碼在使用echo語句進行測試時工作正常。

<?php 
$artist_about_already = artist_news_check($artist_id); 
if ($artist_about_already == true) { 
    $artist_news = (get_artist_news_all($artist_id)); 
foreach ($artist_news as $news) { 
    $news_id  = $news['id']; 
    $timestamp = $news['timestamp']; 
    $title  = $news['title']; 
    $news  = $news['news']; 
    $news_timestamp = date('D M d Y @ h:i:s', $timestamp); 
?> 
<div class="well no-padding"> 
    <form action="" method="post" name="artist_update_news" id="artist_update_news" class="smart-   form client-form"> 

           <fieldset> 
           <section> 
<strong>Posted on: <?php echo $news_timestamp ?></strong> 

            <label class="input"> <i class="icon-append fa fa-user"></i> 
             <input type="text" name="artist_update_news_title"  id="artist_update_news_title" value="<?php echo $title ?>"> 
             <b class="tooltip tooltip-bottom-right">Needed to update Artist News</b> </label> 
           </section> 
          <section> 
           <label class="textarea">           
            <textarea rows="5" maxlength="2000" name="artist_edit_news" id="artist_edit_news"><?php echo $news ?></textarea> 
           </label> 
          </section> 
    <input type="hidden" name="hiddenId" id ="hiddenId" value="<?php echo $news_id; ?>"> 

          </fieldset> 

          <footer> 
         <button type="submit" class="btn btn-success updateBtn" href="#artist_news.php" id="<?php echo $id ?>"> 
            Update 
           </button> 

          </footer> 
          </form> 
        </div> 

    <?php 
    } 
    } 

    ?>       

當用戶單擊foreach語句中任何單個記錄上的更新時,將調用以下代碼。

runAllForms(); 
$(function() {  
$("#artist_update_news").validate({ 
rules: { 
    artist_update_news_title : { 
    required : true 
    }, 
artist_edit_news : { 
required : true 
} 
}, 
     // messages for form validation 
messages : { 
artist_update_news_title : { 
required : 'Please enter your News Heading' 
}, 
artist_edit_news : { 
required : 'Please enter your News' 
} 
}, 

errorPlacement : function(error, element) { 
error.insertAfter(element.parent()); 
}, 
submitHandler: function() { 
alert('in function'); 
var element = $(this); 
var hiddenId = element.attr("hiddenId"); 
var artist_edit_news = element.attr("artist_edit_news"); 
var artist_update_news_title = element.attr("artist_update_news_title"); 
alert(hiddenId); 
alert(artist_edit_news); 
alert(artist_update_news_title); 
$('#artist_update_news').hide(0); 
$('#art_edit_news_message').hide(0); 

$.ajax({ 
url : 'artist_edit_news.php', 
type : 'POST', 
dataType : 'json', 
data: { 
artist_update_news_title : artist_update_news_title.val(), 
artist_edit_news : artist_edit_news.val(), 
hiddenId : hiddenId.val() 
}, 
success : function(data){ 
$('#art_edit_news_message').removeClass().addClass((data.error === true) ? 'error' : 'success') 
.text(data.msg).show(500); 
if (data.error === true) { 
    if (data.goto == 1) { 
    window.location = "http://dev.worldmusicstage.com/main.php#/ajax/artist_news.php"; 
    $('#artist_update_news').show(500); 
     delete json; 
    } 
    else { 

    $('#artist_update_news').show(500); 
    } 
} 
if (data.error === false) { 
    window.location = "http://dev.worldmusicstage.com/main.php#/ajax/artist_news.php"; 
    $('#artist_update_news').show(500); 
delete json; 
} 
}, 
error : function(XMLHttpRequest, textStatus, errorThrown) { 
$('#art_edit_news_message').removeClass().addClass('error') 
alert('The error was: '+errorThrown); 
alert('The error was: '+XMLHttpRequest); 
alert('The error was: '+textStatus); 
alert(errorThrown.stack) 
$('#artist_update_news').show(500); 
} 
}); 
return false; 
} 
}); 
}); 

回答

0

您需要

id ="hiddenId" 

產生輸入標籤的獨特的動態ID,我們還需要設置變量$ ID的值

<button 
     type="submit" 
     class="btn btn-success updateBtn" 
     href="#artist_news.php" 
     id="<?php echo $id ?>" 
> 

你需要生成輸入標籤的唯一動態ID或使用類別選擇器

$("#artist_update_news").validate({ 

<form action="" 
     method="post" 
     name="artist_update_news" 
     id="artist_update_news" 
     class="smart-form client-form"> 
+0

謝謝,我也的確讓修訂提交按鈕。該ID是錯誤的,我更新到$ news_id。但是,仍然沒有工作。 \t \t \t \t \t \t \t <按鈕類型= 「提交」 類= 「BTN BTN-成功updateBtn的」 href = 「#artist_news.php」 ID = 「<?PHP的echo $ news_id?>」> – 2014-09-05 03:16:54

+0

感謝凱文。我對如何做到這一點感到困惑。如果我在表單ID中指定一個唯一的ID,那麼我該如何在腳本中指定該ID。當我循環遍歷foreach時,我可以將1,2,3,4等分配給唯一的ID而不是artist_update_news,但是如何在腳本中識別這個ID。或者我引用爲getelementbyid。謝謝你的幫助。格蘭特 – 2014-09-05 04:04:20