Ενημέρωση δεδομένων. Πρόβλημα με id

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 23 Σεπ 2012 15:04

Καλησπέρα σε όλους. Έχω φτιάξει ένα αρχείο προκειμένου να κάνω update φόρμα χωρίς να γίνεται ανανέωση της σελίδας με την χρήση ajax - xml. Αποτελεί μια πειραματική, μικρή έκδοση έτσι ώστε αν δουλέψει αυτή θα μπορέσω να κάνω αναλόγως και τα υπόλοιπα. Το πρόβλημα μου είναι το εξής: Ότι δεν μπορώ να χαρακτηρίσω μοναδικά κάθε εγγραφή. Εγώ γιαυτό το σκοπό χρησιμοποιώ ένα hidden button που παίρνει το id του πίνακα αλλά παρόλα αυτά δεν δουλεύει. Με λίγα λόγια αν θέλω να αλλάξω το όνομα στην τρίτη εγγραφή του πίνακα δεν θα γίνει απολύτως τίποτα με την μέθοδο του hidden button. Κάποιος φίλος από εδώ μέσα με είπε πιο παλιά μια μέθοδο να βάλω έναν μετρητή i++ στην while που θα τον αρχικοποιώ από πάνω και στο τέλος θα τον αυξάνω κατά 1 που αφορούσε συγκεκριμένα το id, αλλά δεν μπόρεσα να το καταφέρω. σας στέλνω παρακάτω τον κώδικα.

ajaxtest.php

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

<html>
<head>
<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Λίστα Ομάδων</TITLE>
</head>
<body>
<?include&#40;'connect_db.php'&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;?>
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
function ajaxFunction&#40;&#41;&#123;
 var ajaxRequest;  // The variable that makes Ajax possible!

 try&#123;
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest&#40;&#41;;
 &#125;catch &#40;e&#41;&#123;
   // Internet Explorer Browsers
   try&#123;
      ajaxRequest = new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;;
   &#125;catch &#40;e&#41; &#123;
      try&#123;
         ajaxRequest = new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
      &#125;catch &#40;e&#41;&#123;
         // Something went wrong
         alert&#40;"Your browser broke!"&#41;;
         return false;
      &#125;
   &#125;
 &#125;
 // Create a function that will receive data
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function&#40;&#41;&#123;
   if&#40;ajaxRequest.readyState == 4&#41;&#123;
      var ajaxDisplay = document.getElementById&#40;'ajaxDiv'&#41;;
      ajaxDisplay.value = ajaxRequest.responseText;
   &#125;
 &#125;
 // Παίρνουμε τα values για το
 // server script.
 var id = document.getElementById&#40;'id'&#41;.value;
 var onoma = document.getElementById&#40;'onoma'&#41;.value;
 var epwnimo = document.getElementById&#40;'epwnimo'&#41;.value;
 var hidden = document.getElementById&#40;'hidden'&#41;.value;


 var queryString = "?id=" + id + "&onoma=" + onoma + "&epwnimo=" + epwnimo + "&hidden=" + hidden;
 ajaxRequest.open&#40;"GET", "ajax-test2.php" + queryString, true&#41;;
 ajaxRequest.send&#40;null&#41;;
&#125;
//-->
</script>
<?
$sql = "SELECT * FROM ajax_test order by id";
$myData = mysql_query&#40;$sql&#41;;
echo "<table border=1>
<tr>
<th>Κωδικός</th>
<th>Όνομα</th>
<th>Επώνυμο</th>

</tr>";

while&#40;$row = mysql_fetch_array&#40;$myData, MYSQL_ASSOC&#41;&#41;&#123;


echo "<form name='myForm'>";
echo "<tr>";

echo '<td align=center>' . '<input type="text" name="id" id="id" readonly=readonly style="text-align&#58; center" value="' . $row&#91;'id'&#93; . '" size="4"</td>';
echo '<td align=center>'.'<input type="text" name="onoma" id="onoma" style="text-align&#58; center" value="'.$row&#91;'onoma'&#93;.'"</td>';
echo '<td align=center>' . '<input type="text" name="epwnimo" id="epwnimo" style="text-align&#58; center" value="' . $row&#91;'epwnimo'&#93; . '" size="4"</td>';
// Το hidden το χρησιμοποιώ για να χαρακτηρίζω μοναδικά την κάθε εγγραφή που εμφανίζεται ώστε να μπορώ να την διαχειριστώ
echo '<td>' . '<input type="hidden" id="hidden" name="hidden" value="' . $row&#91;'id'&#93; . '" </td>';
echo "<td>" . "<input type=button onclick='ajaxFunction&#40;&#41;' name=x id=update!! value=update!!" . " </td>";

echo "</tr>";
echo "</form>";

&#125;


mysql_close&#40;&#41;;

?>

<div id='ajaxDiv'>Your result will display here</div>
</body>
</html> 
ajax-test.php

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

<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "diplomatiki";
	//Connect to MySQL Server
mysql_connect&#40;$dbhost, $dbuser, $dbpass&#41;;
	//Select Database
mysql_select_db&#40;$dbname&#41; or die&#40;mysql_error&#40;&#41;&#41;;
	// Retrieve data from Query String
$onoma = $_GET&#91;'onoma'&#93;;
$epwnimo = $_GET&#91;'epwnimo'&#93;;
$id = $_GET&#91;'id'&#93;;
$hidden = $_GET&#91;'hidden'&#93;;

	// Escape User Input to help prevent SQL Injection
$id = mysql_real_escape_string&#40;$id&#41;;
$onoma = mysql_real_escape_string&#40;$onoma&#41;;
$epwnimo = mysql_real_escape_string&#40;$epwnimo&#41;;
$hidden = mysql_real_escape_string&#40;$hidden&#41;;

	//Εδώ προσπαθώ με την χρησιμοποίηση του hidden που έχει το id της κάθε εγγραφής να ενημερώσω την αντίστοιχη εγγραφή του πίνακα χωρίς όμως επιτυχία.. Με μετρητή δυστυχώς δεν ξέρω πως θα το καταφέρω..
$query = "update ajax_test set onoma = '.$onoma.' where id='.$hidden.'";
$query2 = "update ajax_test set epwnimo = '.$epwnimo.' where id='.$hidden.'";


	
$qry_result = mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41;;
$qry_result2 = mysql_query&#40;$query2&#41; or die&#40;mysql_error&#40;&#41;&#41;;
?>
miteletsis

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από WSPNH » 25 Σεπ 2012 13:31

Υπάρχουν και άλλοι καλύτεροι τρόποι να το κάνεις, π.χ. jquery ajax αν και φορτώνεις την jquery αλλά δεν την χρησιμοποιείς. Φυσικά ο κώδικας χρειάζεται βελτιστοποίηση αλλά κράτησα τον δικό σου χωρίς πολλές αλλαγές, εγώ δεν θα τον έγραφα έτσι..

Σημειώσεις: σε μια σελίδα τα id πρέπει να είναι μοναδικά έτσι εφόσον χρησιμοποιείς loopa για να εμφανίσεις τα δεδομένα πρέπει τα id να είναι μοναδικά. Ένας τρόπος είναι ο εξής (id="id_x") όπου x ο αριθμός του id που διαβάζεις από τη βάση (εφόσον έχεις ενα πεδίο id - κλειδί - μοναδικό)

Για να δουλέψει ο παρακάτω κώδικας που σου διόρθωσα πρέπει στο table της βάσης diplomatiki να έχεις ένα πεδίο id που θα είναι το πρωτεύων κλειδί αν θέλεις μπορείς να το κάνεις να αυξάνετε αυτόματα- auto increment (αναλόγως βέβαια τις ανάγκες του προγράμματος)

Στο event onclick πέρασα το όρισμα id στην συναρτηση: ajaxFunction('.$row['id'].') έτσι μόλις πατήσεις το κουμπί θα ψάξει τις τιμές των input boxes με id onoma_x και epwnimo_x όπου x το όρισμα της ajaxFunction

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

<html> 
<head> 
<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<TITLE>Λίστα Ομάδων</TITLE> 
</head> 
<body> 
<?php include&#40;'connect_db.php'&#41;; 
mysql_query&#40;"SET NAMES 'utf8'"&#41;;?> 
<script language="javascript" type="text/javascript"> 
<!-- 
//Browser Support Code 
function ajaxFunction&#40;idVal&#41;&#123; 
 var ajaxRequest;  // The variable that makes Ajax possible! 

 try&#123; 
   // Opera 8.0+, Firefox, Safari 
   ajaxRequest = new XMLHttpRequest&#40;&#41;; 
 &#125;catch &#40;e&#41;&#123; 
   // Internet Explorer Browsers 
   try&#123; 
      ajaxRequest = new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;; 
   &#125;catch &#40;e&#41; &#123; 
      try&#123; 
         ajaxRequest = new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;; 
      &#125;catch &#40;e&#41;&#123; 
         // Something went wrong 
         alert&#40;"Your browser broke!"&#41;; 
         return false; 
      &#125; 
   &#125; 
 &#125; 
 // Create a function that will receive data 
 // sent from the server and will update 
 // div section in the same page. 
 ajaxRequest.onreadystatechange = function&#40;&#41;&#123; 
   if&#40;ajaxRequest.readyState == 4&#41;&#123; 
      var ajaxDisplay = document.getElementById&#40;'ajaxDiv'&#41;; 
      ajaxDisplay.value = ajaxRequest.responseText; 
   &#125; 
 &#125; 
 // Παίρνουμε τα values για το 
 // server script. 
 var id = idVal;//document.getElementById&#40;'id'&#41;.value; 
 var onoma = document.getElementById&#40;'onoma_'+idVal&#41;.value; 
 var epwnimo = document.getElementById&#40;'epwnimo_'+idVal&#41;.value; 

 var queryString = "?id=" + id + "&onoma=" + onoma + "&epwnimo=" + epwnimo; 
 ajaxRequest.open&#40;"GET", "ajax-test.php" + queryString, true&#41;; 
 ajaxRequest.send&#40;null&#41;; 
&#125; 
//--> 
</script> 
<?php
$sql = "SELECT * FROM ajax_test order by id"; 
$myData = mysql_query&#40;$sql&#41;; 
echo "<table border=1> 
<tr> 
<th>Κωδικός</th> 
<th>Όνομα</th> 
<th>Επώνυμο</th> 
</tr>"; 

while&#40;$row = mysql_fetch_array&#40;$myData, MYSQL_ASSOC&#41;&#41;&#123; 

echo "<form name='myForm'>"; 
echo "<tr>"; 
echo '<td align=center><input type="text" name="id" id="id_'.$row&#91;'id'&#93;.'" readonly=readonly style="text-align&#58; center" value="' . $row&#91;'id'&#93; . '" size="4" /></td>'; 
echo '<td align=center><input type="text" name="onoma" id="onoma_'.$row&#91;'id'&#93;.'" style="text-align&#58; center" value="'.$row&#91;'onoma'&#93;.'"</td>'; 
echo '<td align=center><input type="text" name="epwnimo" id="epwnimo_'.$row&#91;'id'&#93;.'" style="text-align&#58; center" value="' . $row&#91;'epwnimo'&#93; . '" size="4"/></td>'; 
echo '<td><input type=button onclick="ajaxFunction&#40;'.$row&#91;'id'&#93;.'&#41;" name="x" value=update!! /></td>'; 
echo "</tr>"; 
echo "</form>"; 

&#125; 

mysql_close&#40;&#41;; 

?> 

<div id='ajaxDiv'>Your result will display here</div> 
</body> 
</html>

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

<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpass = ""; 
$dbname = "diplomatiki"; 
   //Connect to MySQL Server 
mysql_connect&#40;$dbhost, $dbuser, $dbpass&#41;; 
   //Select Database 
mysql_select_db&#40;$dbname&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
   // Retrieve data from Query String 
$onoma = $_GET&#91;'onoma'&#93;; 
$epwnimo = $_GET&#91;'epwnimo'&#93;; 
$id = $_GET&#91;'id'&#93;; 

// Escape User Input to help prevent SQL Injection 
$id = mysql_real_escape_string&#40;$id&#41;; 
$onoma = mysql_real_escape_string&#40;$onoma&#41;; 
$epwnimo = mysql_real_escape_string&#40;$epwnimo&#41;; 

$query = "update ajax_test set onoma = '".$onoma."', epwnimo = '".$epwnimo."' where id='".$id."' "; 
    
$qry_result = mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41;; 

?>
http://xesemesa.gr ή http://arxwn.eu όπως και να έχει http://jbaron.gr

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 25 Σεπ 2012 17:17

Φίλε με έσωσες!! δουλεύει! Ενσωμάτωσα και λειτουργίες διαγραφής και προσθήκης δεδομένων απλά προσθέτοντας ένα ακόμα όρισμα. Ένα τελευταίο πρόβλημα είναι το εξής.. Πατάω για παράδειγμα διαγραφή η προσθήκη δεδομένων αλλά στην σελίδα δεν γίνεται τίποτα.. μόνο άμα ανανεώσω ο ίδιος την σελίδα από τον browser τότε φαίνεται ότι πραγματοποιήθηκε η διαγραφή ή η προσθήκη με επιτυχία.. τι κόλπο υπάρχει για να εμφανίζονται τα νέα δεδομένα μου με την μια, χωρίς να χρειάζεται να κάνω ανανέωση όλη την σελίδα?
miteletsis

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από WSPNH » 25 Σεπ 2012 19:59

Για να κάνεις να διαγράφονται πρέπει να βάλεις ένα μοναδικό id στο tr. π.χ. στην loopa το echo "<tr>"; κάνε το echo '<tr id="row_'.$row['id'].'">';

Έπειτα μόλις πατήσεις ένα κουμπί κάλεσε μια άλλη function στο onclick event: π.χ. onclick="deleteFunction('.$row['id'].')"

Μετά δημιούργησε την function:

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

function deleteFunction&#40;idVal&#41;&#123;

//edw diagrafeis thn grammh tou pinaka
//p.x. me jQuery
$&#40;'#row_' + idVal&#41;.remove&#40;&#41;;

&#125;

για την πρόσθεση πρέπει να δημιουργήσεις μια καινούργια γραμμή με τα δεδομένα και μετά να τα κάνεις append στο τέλος του πίνακα. Αν ψάξεις στο google jquery append θα βρεις παραδείγματα. Αν δεν τα καταφέρεις postare τον κώδικα μέχρι το σημείο που έχεις φτάσει και θα στον διορθώσω...

βέβαια υπάρχει και τρόπος να μην γίνεται append το καινούργιο element και απλά να ξανά φορτώνεις τον όλο πίνακα με ajax (δεν το συνιστώ για πολύ μεγάλο πλήθος δεδομένων).
http://xesemesa.gr ή http://arxwn.eu όπως και να έχει http://jbaron.gr

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 25 Σεπ 2012 21:05

Το θέμα είναι επειδή στην αρχιτεκτονική που έχει η εφαρμογή μου χρησιμοποιείται η xml, γιαυτό καιγόμουν να γίνει έτσι. Πάντως θα το δοκιμάσω αυτό που είπες στην jquery και θα ενημερώσω. ευχαριστώ πολύ!
miteletsis

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 25 Σεπ 2012 21:59

Χρησιμοποίησα το παράδειγμα σου στην διαγραφή, εξαφανίζεται η γραμμή αλλά μόνο από την σελίδα.. όχι από την βάση
miteletsis

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από WSPNH » 25 Σεπ 2012 22:53

dimos_mitel έγραψε:Χρησιμοποίησα το παράδειγμα σου στην διαγραφή, εξαφανίζεται η γραμμή αλλά μόνο από την σελίδα.. όχι από την βάση
πρέπει επίσης να κάνεις ένα ajax call σε ένα php αρχείο όπου θα περνάς το id και θα διαγράφει τη γραμμή από τη βάση
http://xesemesa.gr ή http://arxwn.eu όπως και να έχει http://jbaron.gr

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 25 Σεπ 2012 22:57

Οκ ευχαριστω! θα το προσπαθήσω και αυτό καθώς και την προσθήκη και αύριο θα σου ανεβάσω τα αποτελέσματα και τι γίνεται. Είμαι τελείως αρχάριος στην ajax - xml -jquery.. sorry αν ρωτάω χαζά πράγματα.
miteletsis

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 26 Σεπ 2012 00:18

Σου στέλνω αρχικά το delete το οποίο το έκανα βασιζόμενος σε αυτό το παράδειγμα: http://www.ehow.com/how_10043457_delete ... query.html

Κάτι γίνεται όμως και δεν τρέχει σωστά. Ίσως με το TR δεν περνάω σωστά την τιμή. Η γραμμή από τον browser φεύγει κανονικά αλλά όχι και από την βάση. το δεύτερο αρχείο που έχει το ερώτημα είναι σωστό.

ajaxtest.php

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

<html>
<head>

<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Παράδειγμα</TITLE>
</head>
<body>
<?php include&#40;'connect_db.php'&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;?>
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
jQuery&#40;document&#41;.ready&#40;function&#40;&#41;&#123;

$&#40;".deleteitem"&#41;.click&#40;function&#40;&#41;&#123;

var parent = $&#40;this&#41;.closest&#40;'tr'&#41;;

var id = parent.attr&#40;'id'&#41;;

$.ajax&#40;&#123;

type&#58; "POST",

data&#58; "id=" +id,

URL&#58; "delete_user.php",

success&#58; function&#40;msg&#41;&#123;

$&#40;'#'+id&#41;.remove&#40;&#41;;

&#125;

&#125;&#41;;

&#125;&#41;;

&#125;&#41;;
function ajaxFunction&#40;idVal,type&#41;&#123;
 var ajaxRequest;  // The variable that makes Ajax possible!

 try&#123;
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest&#40;&#41;;
 &#125;catch &#40;e&#41;&#123;
   // Internet Explorer Browsers
   try&#123;
      ajaxRequest = new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;;
   &#125;catch &#40;e&#41; &#123;
      try&#123;
         ajaxRequest = new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
      &#125;catch &#40;e&#41;&#123;
         // Something went wrong
         alert&#40;"Your browser broke!"&#41;;
         return false;
      &#125;
   &#125;
 &#125;
 // Create a function that will receive data
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function&#40;&#41;&#123;
   if&#40;ajaxRequest.readyState == 4&#41;&#123;
      var ajaxDisplay = document.getElementById&#40;'ajaxDiv'&#41;;
      ajaxDisplay.value = ajaxRequest.responseText;
   &#125;
 &#125;
 // Παίρνουμε τα values για το
 // server script.
 var id_test = idVal;//document.getElementById&#40;'id'&#41;.value;
 var type = type;
 var onoma = document.getElementById&#40;'onoma_'+idVal&#41;.value;
 var epwnimo = document.getElementById&#40;'epwnimo_'+idVal&#41;.value;

 var queryString = "?id_test=" + id_test + "&type=" + type + "&onoma=" + onoma + "&epwnimo=" + epwnimo;
 ajaxRequest.open&#40;"GET", "ajax-test2.php" + queryString, true&#41;;
 ajaxRequest.send&#40;null&#41;;
&#125;

//-->
</script>
<?php
$sql = "SELECT * FROM ajax_test order by id_test";
$myData = mysql_query&#40;$sql&#41;;
echo "<table border=1>
<tr>
<th>Κωδικός</th>
<th>Όνομα</th>
<th>Επώνυμο</th>
</tr>";

while&#40;$row = mysql_fetch_array&#40;$myData, MYSQL_ASSOC&#41;&#41;&#123;

echo "<form name='myForm'>";
echo '<tr id="'.$row&#91;'id_test'&#93;.'">';
echo '<td align=center><input type="text" name="id" id="id_test_'.$row&#91;'id_test'&#93;.'" readonly=readonly style="text-align&#58; center" value="' . $row&#91;'id_test'&#93; . '" size="4" /></td>';
echo '<td align=center><input type="text" name="onoma" id="onoma_'.$row&#91;'id_test'&#93;.'" style="text-align&#58; center" value="'.$row&#91;'onoma'&#93;.'"</td>';
echo '<td align=center><input type="text" name="epwnimo" id="epwnimo_'.$row&#91;'id_test'&#93;.'" style="text-align&#58; center" value="' . $row&#91;'epwnimo'&#93; . '" size="4"/></td>';
echo '<td><input type=button onclick="ajaxFunction&#40;'.$row&#91;'id_test'&#93;.', this.id&#41;" name="x" id=update value=update!! /></td>';
echo '<td><input type=button class="deleteitem" name="x" id=delete value=delete!! /></td>';

echo "</tr>";
echo "</form>";

&#125;

mysql_close&#40;&#41;;

?>

<div id='ajaxDiv'>Your result will display here</div>
</body>
</html>
delete_user.php

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

<?

include&#40;'connect_db.php'&#41;;

$id = $_POST&#91;id&#93;;

if &#40;isset&#40;$id&#41;&#41; &#123;

$DeleteQuery = "DELETE FROM ajax_test WHERE id_test='".$id."' ";
mysql_query&#40;$DeleteQuery&#41;;

&#125;

?>
miteletsis

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 26 Σεπ 2012 16:30

dimos_mitel έγραψε: Το έλυσα άκυρο αυτό.. τώρα θα ασχοληθώ με την προσθήκη και ενημερώνω :). Σου στέλνω αρχικά το delete το οποίο το έκανα βασιζόμενος σε αυτό το παράδειγμα: http://www.ehow.com/how_10043457_delete ... query.html

Κάτι γίνεται όμως και δεν τρέχει σωστά. Ίσως με το TR δεν περνάω σωστά την τιμή. Η γραμμή από τον browser φεύγει κανονικά αλλά όχι και από την βάση. το δεύτερο αρχείο που έχει το ερώτημα είναι σωστό.

ajaxtest.php

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

<html>
<head>

<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Παράδειγμα</TITLE>
</head>
<body>
<?php include&#40;'connect_db.php'&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;?>
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
jQuery&#40;document&#41;.ready&#40;function&#40;&#41;&#123;

$&#40;".deleteitem"&#41;.click&#40;function&#40;&#41;&#123;

var parent = $&#40;this&#41;.closest&#40;'tr'&#41;;

var id = parent.attr&#40;'id'&#41;;

$.ajax&#40;&#123;

type&#58; "POST",

data&#58; "id=" +id,

URL&#58; "delete_user.php",

success&#58; function&#40;msg&#41;&#123;

$&#40;'#'+id&#41;.remove&#40;&#41;;

&#125;

&#125;&#41;;

&#125;&#41;;

&#125;&#41;;
function ajaxFunction&#40;idVal,type&#41;&#123;
 var ajaxRequest;  // The variable that makes Ajax possible!

 try&#123;
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest&#40;&#41;;
 &#125;catch &#40;e&#41;&#123;
   // Internet Explorer Browsers
   try&#123;
      ajaxRequest = new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;;
   &#125;catch &#40;e&#41; &#123;
      try&#123;
         ajaxRequest = new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
      &#125;catch &#40;e&#41;&#123;
         // Something went wrong
         alert&#40;"Your browser broke!"&#41;;
         return false;
      &#125;
   &#125;
 &#125;
 // Create a function that will receive data
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function&#40;&#41;&#123;
   if&#40;ajaxRequest.readyState == 4&#41;&#123;
      var ajaxDisplay = document.getElementById&#40;'ajaxDiv'&#41;;
      ajaxDisplay.value = ajaxRequest.responseText;
   &#125;
 &#125;
 // Παίρνουμε τα values για το
 // server script.
 var id_test = idVal;//document.getElementById&#40;'id'&#41;.value;
 var type = type;
 var onoma = document.getElementById&#40;'onoma_'+idVal&#41;.value;
 var epwnimo = document.getElementById&#40;'epwnimo_'+idVal&#41;.value;

 var queryString = "?id_test=" + id_test + "&type=" + type + "&onoma=" + onoma + "&epwnimo=" + epwnimo;
 ajaxRequest.open&#40;"GET", "ajax-test2.php" + queryString, true&#41;;
 ajaxRequest.send&#40;null&#41;;
&#125;

//-->
</script>
<?php
$sql = "SELECT * FROM ajax_test order by id_test";
$myData = mysql_query&#40;$sql&#41;;
echo "<table border=1>
<tr>
<th>Κωδικός</th>
<th>Όνομα</th>
<th>Επώνυμο</th>
</tr>";

while&#40;$row = mysql_fetch_array&#40;$myData, MYSQL_ASSOC&#41;&#41;&#123;

echo "<form name='myForm'>";
echo '<tr id="'.$row&#91;'id_test'&#93;.'">';
echo '<td align=center><input type="text" name="id" id="id_test_'.$row&#91;'id_test'&#93;.'" readonly=readonly style="text-align&#58; center" value="' . $row&#91;'id_test'&#93; . '" size="4" /></td>';
echo '<td align=center><input type="text" name="onoma" id="onoma_'.$row&#91;'id_test'&#93;.'" style="text-align&#58; center" value="'.$row&#91;'onoma'&#93;.'"</td>';
echo '<td align=center><input type="text" name="epwnimo" id="epwnimo_'.$row&#91;'id_test'&#93;.'" style="text-align&#58; center" value="' . $row&#91;'epwnimo'&#93; . '" size="4"/></td>';
echo '<td><input type=button onclick="ajaxFunction&#40;'.$row&#91;'id_test'&#93;.', this.id&#41;" name="x" id=update value=update!! /></td>';
echo '<td><input type=button class="deleteitem" name="x" id=delete value=delete!! /></td>';

echo "</tr>";
echo "</form>";

&#125;

mysql_close&#40;&#41;;

?>

<div id='ajaxDiv'>Your result will display here</div>
</body>
</html>
delete_user.php

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

<?

include&#40;'connect_db.php'&#41;;

$id = $_POST&#91;id&#93;;

if &#40;isset&#40;$id&#41;&#41; &#123;

$DeleteQuery = "DELETE FROM ajax_test WHERE id_test='".$id."' ";
mysql_query&#40;$DeleteQuery&#41;;

&#125;

?>
miteletsis

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 27 Σεπ 2012 10:18

Καλησπέρα, ανεβάζω τώρα την μια σελίδα μαζί με την προσθήκη. Η προσθήκη δεν λειτουργεί κάτι πάει στραβά. Βασίζομαι σε αυτό το παράδειγμα : http://www.michaelpeacock.co.uk/blog/en ... and-jquery . Μου κάνει append κανονικά απλά δεν γίνεται προσθήκη των δεδομένων στον πίνακα της βάσης ajax_test (id_test, onoma, epwnimo). Όλα γίνονται στην παρακάτω σελίδα όσον αφορά το κομμάτι της προσθήκης:

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

<html>
<head>

<script type="text/javascript" src="http&#58;//ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Λίστα Ομάδων</TITLE>
</head>
<body>
<?php include&#40;'connect_db.php'&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;?>
&#91;i&#93;&#91;b&#93;<script type="text/javascript"> 
	$&#40;document&#41;.ready&#40;function&#40;&#41; &#123;
		var currentItem = 1;
		$&#40;'#addnew'&#41;.click&#40;function&#40;&#41;&#123;
			currentItem++;
			$&#40;'#items'&#41;.val&#40;currentItem&#41;;
			var strToAdd = '<tr><td><input type="text" id="id_test_'+currentItem+'" name="id_test_'+currentItem+'" /></td><td><input type="text" id="onoma_'+currentItem+'" name="onoma_'+currentItem+'" /></td><td><input type="text" id="epwnimo_'+currentItem+'" name="epwnimo_'+currentItem+'" /></td></tr>';
			$&#40;'#invoice'&#41;.append&#40;strToAdd&#41;;
			
		&#125;&#41;;
	&#125;&#41;;
</script> &#91;/b&#93;&#91;/i&#93;
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code


function deleteFunction&#40;idVal&#41;&#123;


$.ajax&#40;&#123;type&#58;'GET',url&#58;'ajaxtest_del.php',data&#58;"id_test=" + idVal,
   success&#58;function&#40;data&#41;&#123;
     $&#40;'#row_' + idVal&#41;.remove&#40;&#41;;
   &#125;
 &#125;&#41;;
&#125;


function ajaxFunction&#40;idVal,type&#41;&#123;
 var ajaxRequest;  // The variable that makes Ajax possible!

 try&#123;
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest&#40;&#41;;
 &#125;catch &#40;e&#41;&#123;
   // Internet Explorer Browsers
   try&#123;
      ajaxRequest = new ActiveXObject&#40;"Msxml2.XMLHTTP"&#41;;
   &#125;catch &#40;e&#41; &#123;
      try&#123;
         ajaxRequest = new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
      &#125;catch &#40;e&#41;&#123;
         // Something went wrong
         alert&#40;"Your browser broke!"&#41;;
         return false;
      &#125;
   &#125;
 &#125;
 // Create a function that will receive data
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function&#40;&#41;&#123;
   if&#40;ajaxRequest.readyState == 4&#41;&#123;
      var ajaxDisplay = document.getElementById&#40;'ajaxDiv'&#41;;
      ajaxDisplay.value = ajaxRequest.responseText;
   &#125;
 &#125;
 // Παίρνουμε τα values για το
 // server script.
 var id_test = idVal;//document.getElementById&#40;'id'&#41;.value;
 var type = type;
 var onoma = document.getElementById&#40;'onoma_'+idVal&#41;.value;
 var epwnimo = document.getElementById&#40;'epwnimo_'+idVal&#41;.value;

 var queryString = "?id_test=" + id_test + "&type=" + type + "&onoma=" + onoma + "&epwnimo=" + epwnimo;
 ajaxRequest.open&#40;"GET", "ajax-test2.php" + queryString, true&#41;;
 ajaxRequest.send&#40;null&#41;;
&#125;

//-->
</script>
&#91;b&#93;&#91;i&#93;<?php
// Μετά την δημιουργία εγγραφής invoice στον πίνακα ajax_test
$invoice = mysqli_insert_id&#40; $link &#41;;
for&#40; $i = 1; $i <= $num; $i++ &#41;
&#123;
	if&#40; isset&#40; $_POST&#91;'onoma_' . $i&#93; &#41; && isset&#40; $_POST&#91;'epwnimo_' . $i&#93;&#41; && isset&#40; $_POST&#91;'id_test_' . $i&#93; &#41; > 0 &#41;
	&#123;
		$onoma =  $_POST&#91;'onoma_' . $i &#93;;
		$epwnimo = $_POST&#91;'epwnimo_' . $i&#93;;
		$id_test = $_POST&#91;'id_test_' . $i&#93;;

		$onoma = mysqli_real_escape_string&#40; $_POST&#91;'onoma_' . $i &#93;&#41;;
		$epwnimo = mysqli_real_escape_string&#40; $_POST&#91;'epwnimo_' . $i &#93;&#41;;
		$id_test = mysqli_real_escape_string&#40; $_POST&#91;'id_test_' . $i &#93;&#41;;

		$sql = "INSERT INTO ajax_test &#40;`onoma`, `epwnimo`&#41; VALUES &#40; &#123;$onoma&#125;, '&#123;$epwnimo&#125;'&#41;";
		mysqli_query&#40; $link, $sql &#41;;
	&#125;
&#125;&#91;/i&#93;&#91;/b&#93;
$sql = "SELECT * FROM ajax_test order by id_test";
$myData = mysql_query&#40;$sql&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;
echo "<table border=1 id='invoice'>
<tr>
<th>Κωδικός</th>
<th>Όνομα</th>
<th>Επώνυμο</th>
</tr>";

while&#40;$row = mysql_fetch_array&#40;$myData, MYSQL_ASSOC&#41;&#41;&#123;

echo "<form name='myForm'>";
echo '<tr id="row_'.$row&#91;'id_test'&#93;.'">';
echo '<td align=center><input type="text" name="id" id="id_test_'.$row&#91;'id_test'&#93;.'" readonly=readonly style="text-align&#58; center" value="' . $row&#91;'id_test'&#93; . '" size="4" /></td>';
echo '<td align=center><input type="text" name="onoma" id="onoma_'.$row&#91;'id_test'&#93;.'" style="text-align&#58; center" value="'.$row&#91;'onoma'&#93;.'"</td>';
echo '<td align=center><input type="text" name="epwnimo" id="epwnimo_'.$row&#91;'id_test'&#93;.'" style="text-align&#58; center" value="' . $row&#91;'epwnimo'&#93; . '" size="4"/></td>';
echo '<td><input type=button onclick="ajaxFunction&#40;'.$row&#91;'id_test'&#93;.', this.id&#41;" name="x" id=update value=update!! /></td>';
echo '<td><input type=button onclick="deleteFunction&#40;'.$row&#91;'id_test'&#93;.'&#41;"  name="x" value=delete!! /></td>';

echo "</tr>";
echo "</form>";

&#125;
&#91;b&#93;&#91;i&#93;echo "<form name='myForm' method='POST' action='ajaxtest.php'>";
echo "<tr>";
echo '<td align=center><input type="hidden" name="id_test_1" id="id_test_1" readonly=readonly style="text-align&#58; center" value="" size="4" /></td>';
echo '<td align=center><input type="text" name="onoma_1" id="onoma_1" style="text-align&#58; center" value=""</td>';
echo '<td align=center><input type="text" name="epwnimo_1" id="epwnimo_1" style="text-align&#58; center" value="" size="4"/></td>';


echo '<td><input type=button id="addnew" name="addnew" value=add!! /></td>';
echo '<input type="hidden" id="items" name="items" value="1" />';
echo "</form>";&#91;/i&#93;


mysql_close&#40;&#41;;

?>

<div id='ajaxDiv'></div>
</body>
</html>
[/b]

miteletsis

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από WSPNH » 27 Σεπ 2012 15:19

Με πέτυχες στις καλές μου....

Σου επισυνάπτω ένα zip με όλο το project όπως το θες.

Δες το και πες μου....
Συνημμένα
dimos-freestuff.zip
(3.62 KiB) Μεταφορτώθηκε 156 φορές
http://xesemesa.gr ή http://arxwn.eu όπως και να έχει http://jbaron.gr

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από dimos_mitel » 27 Σεπ 2012 16:15

Τέλεια!! δουλεύει ρολόι.. είναι ακριβώς όπως το ήθελα, έκανες έναν άνθρωπο χαρούμενο σήμερα ;) ευχαριστώ πάρα πολύ για τον κόπο σου!! να είσαι καλά.
miteletsis

WSPNH
Δημοσιεύσεις: 97
Εγγραφή: 10 Μαρ 2006 12:52
Επικοινωνία:

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από WSPNH » 28 Σεπ 2012 18:06

:D --> :wink:
http://xesemesa.gr ή http://arxwn.eu όπως και να έχει http://jbaron.gr

Gveronis
Δημοσιεύσεις: 24
Εγγραφή: 07 Σεπ 2012 11:38

Ενημέρωση δεδομένων. Πρόβλημα με id

Δημοσίευση από Gveronis » 16 Οκτ 2012 21:29

dimos_mitel έγραψε:Τέλεια!! δουλεύει ρολόι.. είναι ακριβώς όπως το ήθελα, έκανες έναν άνθρωπο χαρούμενο σήμερα ;) ευχαριστώ πάρα πολύ για τον κόπο σου!! να είσαι καλά.
εγω στη θέση σου θα έκανα donate στον ανθρωπο που μου εδωσε πιατο τον κώδικα, σιγουρα τα ευχαριστω αποδεκτά αλλα βάση του κόπου τέτοιων ανθρώπων χτίζονται τα πάντα μη το ξεχνας

φιλικα γιαννης

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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