Δεν γίνεται επεξεργασία αποθήκευσης μέσω ModalBox

Βοήθεια λύσεις και νέα από τον χώρο των open source ή έτοιμων εφαρμογών που έχουν φτιαχτεί με την PHP όπως oscommerce, κ.α.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Paris2014
Δημοσιεύσεις: 14
Εγγραφή: 12 Απρ 2014 18:05

Δεν γίνεται επεξεργασία αποθήκευσης μέσω ModalBox

Δημοσίευση από Paris2014 » 10 Νοέμ 2014 20:21

Καλησπέρα σας,

Μετά από πάρα πολλές δοκιμές μπορώ να πω ότι σηκώνω τα χέρια ψιλά και ζητώ την βοήθεια σας...
Χρησιμοποιώ έναν datatable πίνακα στον οποιο περιλαμβάνεται μέσω modal box τα 3 ακόλουθα εργαλεία: add,edit & delete.
Το add είναι μια χαρά και δουλεύει!, το πρόβλημα μου είναι στα υπόλοιπα δυο δεν μου αποθηκεύει π.χ την επεξεργασία με τίποτα.. τραβάω ξεχωριστά το κάθε id μονο του, αλλα μου δείχνει το παρακάτω error:

Notice: Undefined index: d_id in ...... on line 157 <- ανήκει στο $d_id = $_GET['d_id']; (αυτό νομίζω είναι λάθος και πρέπει να γίνετε κάπως αλλιώς γιατί δεν το δηλώνω πουθενά θα το παρατηρήσετε και παρακάτω).

παρόλα αυτά όμως μου τα αναγνωρίζει τα id κανονικά μέσα στα inputs...

Σας παραθέτω τον κώδικα που υπάρχει το πρόβλημα:

Κώδικας: Επιλογή όλων

<a data-toggle="modal" role="button" href="#modal-<?php echo $row&#91;'d_id'&#93;; ?>" class="btn btn-small show-tooltip" title="Edit">edit</a>

Κώδικας: Επιλογή όλων

									
<?php
$d_id = $_GET&#91;'d_id'&#93;;
// SELECT sql query
$sql = "SELECT * FROM `tblusers`";
									 
// perform the query and store the result
$result = $mysqli->query&#40;$sql&#41;;
									 
// if the $result contains at least one row
if &#40;$result->num_rows > 0&#41; &#123;
// output data of each row from $result
while&#40;$row = $result->fetch_assoc&#40;&#41;&#41; &#123;
$d_id=$row&#91;'d_id'&#93;;
$username=$row&#91;'username'&#93;;
?>

<div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" class="modal hide" id="modal-<?php echo $row&#91;'d_id'&#93;; ?>" style="display&#58; none;">
									
<div class="modal-header">
<button aria-hidden="true" data-dismiss="modal" class="close" type="button">&#215;</button>
<h3 id="myModalLabel">Modal header</h3>
</div>
<div class="modal-body">
<form class="form-horizontal" method="POST">
<input type="text" class="input-large" name="d_id" value="<?php echo $row&#91;'d_id'&#93;; ?>">
<div class="control-group">
<label class="control-label">Όνομα καταχώρησης</label>
<div class="controls">
<input type="text" class="input-large" name="username" value="<?php echo $row&#91;'username'&#93;; ?>">
</div>
</div>
</div>
<div class="modal-footer">
<button aria-hidden="true" data-dismiss="modal" class="btn">Close</button>
<button data-dismiss="modal" class="btn btn-primary" type="submit" name="save_edit">Save changes</button>
</div>
</form>
</div>
<?php
&#125;
&#125;
?>
<?php
// UPDATE sql query
if&#40;isset&#40;$_POST&#91;'save_edit'&#93;&#41;&#41;
&#123;
$d_id = $_POST&#91;'d_id'&#93;;
$username= $_POST&#91;'username'&#93;;
										 
$sql = "UPDATE `tblusers` SET `username` = '$username' WHERE `d_id`='$d_id'";

// perform the query and check for errors
if &#40;!$mysqli->query&#40;$sql&#41;&#41; &#123;
echo 'Error&#58; '. $mysqli->error;
&#125;
&#125;
$mysqli->close&#40;&#41;;
?>

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεν γίνεται επεξεργασία αποθήκευσης μέσω ModalBox

Δημοσίευση από korgr » 11 Νοέμ 2014 00:00

Με μια πρόχειρη ματιά που του έριξα, νομίζω πως πρέπει να περνάς τις τιμές σαν array γιατί είσαι μέσα σε loop.

πχ το:

Κώδικας: Επιλογή όλων

<input type="text" class="input-large" name="d_id" value="<?php echo $row&#91;'d_id'&#93;; ?>">
να είναι:

Κώδικας: Επιλογή όλων

<input type="text" class="input-large" name="d_id&#91;&#93;" value="<?php echo $row&#91;'d_id'&#93;; ?>">
Φυσικά μετά το submit θα πρέπει να χειριστείς τις μεταβλητές σαν array.
Για παράδειγμα η $_POST['d_id'] θα είναι ένας πίνακας που θα περιέχει όλα τα ids που περνάς για το update ή το delete

Paris2014
Δημοσιεύσεις: 14
Εγγραφή: 12 Απρ 2014 18:05

Δεν γίνεται επεξεργασία αποθήκευσης μέσω ModalBox

Δημοσίευση από Paris2014 » 11 Νοέμ 2014 01:02

korgr έγραψε:Με μια πρόχειρη ματιά που του έριξα, νομίζω πως πρέπει να περνάς τις τιμές σαν array γιατί είσαι μέσα σε loop.

πχ το:

Κώδικας: Επιλογή όλων

<input type="text" class="input-large" name="d_id" value="<?php echo $row&#91;'d_id'&#93;; ?>">
να είναι:

Κώδικας: Επιλογή όλων

<input type="text" class="input-large" name="d_id&#91;&#93;" value="<?php echo $row&#91;'d_id'&#93;; ?>">
Φυσικά μετά το submit θα πρέπει να χειριστείς τις μεταβλητές σαν array.
Για παράδειγμα η $_POST['d_id'] θα είναι ένας πίνακας που θα περιέχει όλα τα ids που περνάς για το update ή το delete
Ευχαριστώ πολύ για την απάντηση σου @korgr και χρήσιμα τα παραπάνω που μου είπες αλλα στην προκειμενη περίπτωση σύμφωνα με τα array πως ακριβώς να το κάνω ώστε να δεχτεί την αποθήκευση του submit?...κάνω κάποιες μετατροπές με arrays αλλα δεν βλέπω να γίνεται τίποτα ίσως ξεχνάω κάτι ή κάνω κάποιο λάθος..

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Δεν γίνεται επεξεργασία αποθήκευσης μέσω ModalBox

Δημοσίευση από korgr » 11 Νοέμ 2014 10:09

Αν και πάω λίγο στα τυφλά χωρίς εικόνα όλης της εφαρμογής, για δοκίμασε κάπως έτσι:

Κώδικας: Επιλογή όλων

<?php 
$d_id = $_GET&#91;'d_id'&#93;; 
// SELECT sql query 
$sql = "SELECT * FROM `tblusers`"; 
                            
// perform the query and store the result 
$result = $mysqli->query&#40;$sql&#41;; 
                            
// if the $result contains at least one row 
if &#40;$result->num_rows > 0&#41; &#123; 
// output data of each row from $result 

?>
<div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" class="modal hide" id="modal-<?php echo $d_id; ?>" style="display&#58; none;">
    <div class="modal-header">
        <button aria-hidden="true" data-dismiss="modal" class="close" type="button">&#215;</button>
        <h3 id="myModalLabel">Modal header</h3>
    </div>
    <div class="modal-body">
    <form class="form-horizontal" method="POST">

<?php
while&#40;$row = $result->fetch_assoc&#40;&#41;&#41; &#123; 
	$d_id=$row&#91;'d_id'&#93;; 
	$username=$row&#91;'username'&#93;; 
	?>
        <input type="text" class="input-large" name="ids&#91;&#93;" value="<?php echo $d_id; ?>">
        <div class="control-group">
            <label class="control-label">Όνομα καταχώρησης</label>
            <div class="controls">
                <input type="text" class="input-large" name="usernames&#91;&#93;" value="<?php echo $username; ?>">
            </div>
        </div>
	<?php 
	&#125; 
&#125; 
?>

        <div class="modal-footer">
            <button aria-hidden="true" data-dismiss="modal" class="btn">Close</button>
            <button data-dismiss="modal" class="btn btn-primary" type="submit" name="save_edit">Save changes</button>
        </div>
    </form>
    </div>
</div>


<?php 
// UPDATE sql query 

if&#40;isset&#40;$_POST&#91;'save_edit'&#93;&#41;&#41; &#123; 
	$ids = $_POST&#91;'ids'&#93;; 
	$usernames= $_POST&#91;'usernames'&#93;;
	$numOfRecords = count&#40;$ids&#41;;
	for&#40;$n=0; $n<$numOfRecords; $n++&#41;&#123; 
		$id = $ids&#91;$n&#93;;
		$username = $usernames&#91;$n&#93;;					   
		$sql = "UPDATE `tblusers` SET `username` = '$username' WHERE `d_id`='$id'"; 
		// perform the query and check for errors 
		if &#40;!$mysqli->query&#40;$sql&#41;&#41; &#123; 
			echo 'Error&#58; '. $mysqli->error; 
		&#125;	
	&#125;
&#125; 
$mysqli->close&#40;&#41;; 
?>

Paris2014
Δημοσιεύσεις: 14
Εγγραφή: 12 Απρ 2014 18:05

Δεν γίνεται επεξεργασία αποθήκευσης μέσω ModalBox

Δημοσίευση από Paris2014 » 11 Νοέμ 2014 18:30

Δυστυχώς συνεχίζει να μην γίνετε η αποθήκευση του στην βάση δεδομένων (ενώ είναι σωστή σύμφωνα με τα fields)...στο google που είχα ψάξει όλοι το δουλεύουν με open.click και click.submit μέσω javascript μήπως να φταίει αυτό?..

Απάντηση

Επιστροφή στο “PHP έτοιμες εφαρμογές”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης