הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עריכת נתונית באמצעות AJAX (https://hosts.co.il/forums/showthread.php?t=99296)

Ori The Man 15-08-12 02:39

עריכת נתונית באמצעות AJAX
 
אהלן,
אני מנסה לבצע עריכת נתונים מתוך הטבלה
ניתן לראות פה דוגמה למה שעשיתי (הורדתי את כל הקטע של שליחת נתונים לקובץ עריכה)
http://www.oritheman.net/prob/index.html

פה זה עובד טוב זה שולח נתונים ועורך אותם כמו שצריך-אבל זה רק בליחצה על כל מקום בשורה

כאשר אני מנסה לעשות שרק בלחיצה על התמונת עריכה זה עושה את זה כמו שצריך אבל הוא לא עורך,הוא כאילו לא מזהה את ה Change
http://www.oritheman.net/prob/index2.html

מה אני עושה לא בסדר :S (אני חדש בכל הנושא של jquery)

BuildDream 15-08-12 07:42

למה בכלל להשתמש בjQuery? מה כבר חסר לך בJavaScript?

Steve-Web 15-08-12 10:17

אני אשלח אם יהיה אפשר לראות את הקוד המלא (לא רוצה להתחיל לחפש עכשיו תסקריפט בדפים שלך) ואשמח לעזור לך .

Ori The Man 15-08-12 11:51

זה הקוד

HTML קוד:

$(".edit_tr").click(function()
{

var ID=$(this).attr('id');
$("#realname_"+ID).hide();
$("#username_"+ID).hide();
$("#email_"+ID).hide();
$("#realname_input_"+ID).show();
$("#username_input_"+ID).show();
$("#email_input_"+ID).show();

}).change(function()
{
var ID=$(this).attr('id');
var realname=$("#realname_input_"+ID).val();
var username=$("#username_input_"+ID).val();
var email=$("#email_input_"+ID).val();

var dataString = 'id='+ ID +'&realname='+realname+'&username='+ username + '&email='+ email;


if(realname.length>0 && username.length>0 && email.length>0)
{

$.ajax({
type: "POST",
url: "ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("#realname_"+ID).html(realname);
$("#username_"+ID).html(username);
$("#email_"+ID).html(username);
}
});
}
else
{
alert('אנא מלא את כל השדות הדרושים.');
}

});

// Edit input box click action
$(".editbox").mouseup(function()
{
return false
});

// Outside click action
$(document).mouseup(function()
{
$(".editbox").hide();
$(".text").show();
});

זה הטבלה (מצטער על כל הסלסולים זה עובד עם smarty)

HTML קוד:

<table id="rounded-corner" dir="rtl">
    <thead>
            <tr>
                <th scope="col" class="rounded-company"></th>
            <th scope="col" class="rounded">ID</th>
            <th scope="col" class="rounded">שם</th>
            <th scope="col" class="rounded">שם משתמש</th>
            <th scope="col" class="rounded">מייל</th>
            <th scope="col" class="rounded">ערוך</th>
            <th scope="col" class="rounded-q4">מחק</th>
        </tr>
    </thead>
        <tfoot>
            <tr>
                <td colspan="6" class="rounded-foot-left"><em>הערות הערות הערות הערות הערות הערות</em></td>
                <td class="rounded-foot-right">&nbsp;</td>

        </tr>
    </tfoot>
                        <tbody>               
<form action="{$smarty.server.PHP_SELF}?do=multy_delete" method="post" name="multy_delete">
{foreach from=$row item=rows}     
                       
                        <tr id="{$rows.id}" class="edit_tr">
                       
                        <td><input type="checkbox" name="checkbox[]" id="checkbox[]" value="{$rows.id}" /></td>
                        <td>{$rows.id}</td>
                       
                        <td class="edit_td"><span id="realname_{$rows.id}" class="text">{$rows.realname}</span>
                        <input type="text" value="{$rows.realname}" class="editbox" id="realname_input_{$rows.id}"></td>

                        <td class="edit_td"><span id="username_{$rows.id}" class="text">{$rows.username}</span>
                        <input type="text" value="{$rows.username}" class="editbox" id="username_input_{$rows.id}"></td>

                        <td class="edit_td"><span id="email_{$rows.id}" class="text">{$rows.email}</span>
                        <input type="text" value="{$rows.email}" class="editbox" id="email_input_{$rows.id}"></td>

            <td><img src="images/user_edit.png" alt="" title="" border="0" /></td>
            <td><a href="{$smarty.server.PHP_SELF}?do=delete&id={$rows.id}" class="ask"><img src="images/trash.png" alt="" title="" border="0" /></a></td>

        </tr>

{/foreach}
    </tbody>
</table>


איציק ברבי 15-08-12 12:17

האירוע Change עוד ע"י כך שאתה מוריד את הFOCUS מהאינפוט..
אם אתה רוצה לבדוק כל תו ותו שנכנס תעבוד עם keyup..

אני מקווה שהבנתי אותך נכון, לא הסברת את זה כל כך טוב.

Ori The Man 15-08-12 12:32

נתתי את הדוגמאות

ברגע שאני מכיר את זה על שורה שלמה זה עובד כמו שצריך,מראה את ה INPUT וברגע שאני משנה משהו זה עורך

אבל ברגע שאני רוצה שבלחיצת תמונה זה יעבוד,זה גם מראה את ה INPUT והכל כמו שצריך אבל לא עורך הוא כאילו לא מזהה את ה CHANGE

Itay 15-08-12 12:49

לא מבין מה ניסית לעשות שם שבכלל הלכת על דבר כזה..

תעשה שבלחיצה על האייקון זה יחליף למה שאתה צריך, ויוסיף לאייקון מחלקה או ישנה למחלקה אחרת (שאם היא קיימת אז הלחיצה עליה לא פותחת את העריכה), ואז ברגע שלוחצים על התמונה הזאת שוב זה שומר
מה אכפת לך אם עשו שינוי או לא?


כל הזמנים הם GMT +2. הזמן כעת הוא 23:39.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ