php απορία. Υποβοβολή πολλαπλών δεδομένων στη βάση δεδομένων με php μέσω $_POST

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
cannibal152
Δημοσιεύσεις: 11
Εγγραφή: 19 Αύγ 2008 19:24

php απορία. Υποβοβολή πολλαπλών δεδομένων στη βάση δεδομένων με php μέσω $_POST

Δημοσίευση από cannibal152 » 02 Δεκ 2013 16:11

Καλησπέρα σε όλους,

Έχω μία απορία για το πώς να εισάγω στη database πολλαπλά δεδομένα.
Για να καταλάβετε τί λέω δείτε παρακάτω.

Έχω αυτό το κώδικα.

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

    $("#addrow").click(function(){
		if ($('#lecturer').val()== 'Please select...')
			{
				alert('Please select a name');
			}
		else		
		if ($('#datepicker').val()== '') //error checking if the date is empty
			{
				alert('You must choose a date');
			}
		else
		{
			i++;
			var opt1=$("#lecturer").val();
			var opt2=$("#datepicker").val();
			var opt3=$("#time option:selected").text();
			var opt4=$("#course option:selected").text();
			var opt5=$("#note").val();
			
			$&#40;"#schedule"&#41;.append&#40;'<tr class="alt0"><th><label>'+'<input readonly name="lecturer'+i+'" value="'+opt1+'"/>'+'<input readonly name="date'+i+'" value="'+opt2+'"/>'+'<input readonly name="time'+i+'"value="'+opt3+'"/>'+'<input readonly name="course'+i+'"value="'+opt4+'"/>'+'<input readonly name="note'+i+'"value="'+opt5+'"/>'+'<a href="javascript&#58;void&#40;0&#41;;" class="remove_session" border="2"><img src="pics/delete.gif"/></a>'+'</label></th></tr>'&#41;;
		    
		&#125;
	&#125;&#41;;
Δημιουργώ dynamically μια γραμμή table <tr> με διάφορα δεδομένα.
Έχοντας ώς αποτέλεσμα την πιο κάτω εικόνα.

Εικόνα


Για να μεταφερθούν όλα αυτά στο insert.php file χρησιμοποιώ Ajax.

Ajax code:

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

			$&#40;'.ajax'&#41;.click&#40;function&#40;&#41;&#123;
				$.ajax&#40;&#123;
					url&#58;'insert.php',
					type&#58;'POST',
					data&#58; $&#40;'#schedule'&#41;.serialize&#40;&#41;, 
					name&#58;'submit',
					success&#58; function&#40;result&#41;
					&#123;
						$&#40;'.ajax'&#41;.after&#40;result&#41;; //it returns the result
					&#125;
				&#125;&#41;;
			&#125;&#41;;

Το πρόβλημα μου έιναι ότι όταν δημιουργώ περισσότερες από μία γραμμές, δεν ξέρω πως να τις μεταφέρω όλες στο insert.php file για να εισαχθούν στην database.
Μεταφέρετε μόνο μία.


insert.php code:

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

<?php include 'connect.php';

var_dump&#40;$_POST&#41;;

$sql="INSERT INTO session&#40;lecturer, date, time, course, note&#41; VALUES&#40;'$_POST&#91;lecturer&#93;','$_POST&#91;date&#93;','$_POST&#91;time&#93;','$_POST&#91;course&#93;','$_POST&#91;note&#93;'&#41;";

if &#40;!mysqli_query&#40;$con, $sql&#41;&#41;
  &#123;
  echo "Error on insert.php";
  &#125;
echo "WebEx session scheduled";
?>

Θα εκτιμούσα πάρα πολύ οποιαδήποτε βοήθεια.

Με εκτίμηση
Μάριος.
Συνημμένα
Capture.PNG
(12.27 KiB) Μεταφορτώθηκε 165 φορές


alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

php απορία. Υποβοβολή πολλαπλών δεδομένων στη βάση δεδομένων με php μέσω $_POST

Δημοσίευση από alou » 02 Δεκ 2013 18:02

Στο πρώτο κομμάτι με την js σωστά δημιουργείς input names χρησιμοποιώντας και το i σαν μεταβλητή.

Έξω από το $("#addrow").click(function(){ υπάρχει κάποιος ορισμός του i ? var i = 0; ή κάτι τέτοιο?

Στη $_POST, εφόσον είναι σωστό το παραπάνω, δεν υπάρχει $_POST[time] κλπ αλλά $_POST[time0], $_POST[time1] ανάλογα το πλήθος των tr / input.

Μια απλή λύση, θα ήταν να στείλεις και την τιμή του i σε ένα hidden input με name πχ loopcount και στην php να κάνεις αντίστοιχα ένα loop για να μαζέψεις τις τιμές, χρησιμοποιόντας αυτή τη μεταβλητή και στα ονόματα των input name.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

php απορία. Υποβοβολή πολλαπλών δεδομένων στη βάση δεδομένων με php μέσω $_POST

Δημοσίευση από geomagas » 02 Δεκ 2013 19:42

...ή να κάνεις πχ

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

<input name='time&#91;&#93;' ...... />
...το οποίο θα σου δώσει την time σαν array στην php (το ίδιο και με τα υπόλοιπα).

Το hidden field θα χρειαστεί ούτως ή άλλως, αν μη τι άλλο για το delete (βλ. screenshot).

cannibal152
Δημοσιεύσεις: 11
Εγγραφή: 19 Αύγ 2008 19:24

php απορία. Υποβοβολή πολλαπλών δεδομένων στη βάση δεδομένων με php μέσω $_POST

Δημοσίευση από cannibal152 » 03 Δεκ 2013 12:05

Ευχαριστώ πολύ παιδιά για το χρόνο σας.
Παρακάτω σας παραθέτω το πώς βρήκα λύση. Είναι παρόμοια με τη λύση που έδωσε ο geomagas.
Ελπίζω η λυση να χρησιμεύσει και σε κάποιον άλλο με το ίδιο πρόβλημα.

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

    $&#40;"#addrow"&#41;.click&#40;function&#40;&#41;&#123;
	
		if &#40;$&#40;'#datepicker'&#41;.val&#40;&#41;== ''&#41; //error checking if the date is empty
			&#123;
				alert&#40;'You must choose a date'&#41;;
			&#125;
		else
		&#123;
			i++;

			
			var opt1=$&#40;"#lecturer"&#41;.val&#40;&#41;;
			var opt2=$&#40;"#datepicker"&#41;.val&#40;&#41;;
			var opt3=$&#40;"#time option&#58;selected"&#41;.text&#40;&#41;;
			var opt4=$&#40;"#course option&#58;selected"&#41;.text&#40;&#41;;
			var opt5=$&#40;"#note"&#41;.val&#40;&#41;;
		
			$&#40;"#schedule"&#41;.append&#40;'<tr class="alt0"><th><label>'+'<input readonly name="lecturer&#91;&#93;" value="'+opt1+'"/>'+'<input readonly name="date&#91;&#93;" value="'+opt2+'"/>'+'<input readonly name="time&#91;&#93;"value="'+opt3+'"/>'+'<input readonly name="course&#91;&#93;"value="'+opt4+'"/>'+'<input readonly name="note&#91;&#93;"value="'+opt5+'"/>'+'<a href="javascript&#58;void&#40;0&#41;;" class="remove_session" border="2"><img src="pics/delete.gif"/></a>'+'</label></th></tr>'&#41;;
		    
		&#125;
	&#125;&#41;;	
Το Ajax code παραμένει το ίδιο

insert.php

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

for &#40;$i=0;$i<count&#40;$_POST&#91;'lecturer'&#93;&#41;;$i++&#41;&#123;

	$lec = $_POST&#91;'lecturer'&#93;&#91;$i&#93;;
	$date = $_POST&#91;'date'&#93;&#91;$i&#93;;
	$date= date&#40;'Y-m-d H&#58;i&#58;s'&#41;;
	$time = $_POST&#91;'time'&#93;&#91;$i&#93;;
	$course = $_POST&#91;'course'&#93;&#91;$i&#93;;
	$note = $_POST&#91;'note'&#93;&#91;$i&#93;;
	
	
	$sql="INSERT INTO session&#40;lecturer, date, time, course, note&#41; VALUES&#40;'$lec','$date','$time','$course','$note'&#41;";
	
	if &#40;!mysqli_query&#40;$con, $sql&#41;&#41;
	  &#123;
	  echo "Error on insert.php";
	  &#125;
	echo "<font color='blue'> session " .$i. " scheduled</font> ";
&#125;

Ευχαριστώ και πάλι
Με εκτίμηση
Μάριος

Απάντηση

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

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

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