Δεδομένα εξαγωγή από php σε αρχείο

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

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

Απάντηση
Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από dva_dev » 06 Απρ 2012 19:38

Μπορείς να κάνεις validation είτε client side ( με javascript ) είτε server side, είτε και τα δύο ( η πιο σωστή επιλογή ).
Εγώ θα το έθετα ώς εξής:
Μπορείς να κάνεις validation είτε server side, είτε και server side+client side.

Άβαταρ μέλους
viktoras
Δημοσιεύσεις: 963
Εγγραφή: 05 Απρ 2001 03:00
Τοποθεσία: Γαλάτσι, Αθήνα
Επικοινωνία:

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από viktoras » 06 Απρ 2012 20:07

I stand corrected, σωστότερη ροή επιλογών.
<?="Hello Freestuff";?>
Quality hosting by Cityhost

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 06 Απρ 2012 21:54

Το δοκίμασα κάπως έτσι για server side par_se_xml.php αρχείο

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

<?php 

$filename = "order.xml"; 
date_default_timezone_set&#40;'Europe/Athens'&#41;;

$imerominia=date&#40;'d/m/Y---H&#58;i&#58;s'&#41;;
$time=time&#40;&#41;;

$sin=$_POST&#91;'sin'&#93;;



header&#40;'Content-type&#58; "text/xml"; charset="utf8"'&#41;; 
header&#40;'Content-disposition&#58; attachment; filename="'.$filename.'"'&#41;; 

echo '<?xml version="1.0" encoding="utf-8" ?>',PHP_EOL; 
echo '<orders>',PHP_EOL; 

	echo '<order client="',$sin,'" orderdate="',$imerominia,'" timeint="',$time,'">',PHP_EOL; 
	$data = $_POST&#91;'data'&#93;; 

foreach&#40;$data as $row&#41;&#58; 
$kod= $row&#91;'kod'&#93;; 
$tem =$row&#91;'tem'&#93;; 
$sxolia= $row&#91;'sxolia'&#93;; 
if&#40;$kod==''&&$tem!=''&#41;&#123;
header&#40;"location&#58;../index.php?i=nea_par&r=1"&#41;;

&#125;
if&#40;$kod!=''&&$tem==''&#41;&#123;
header&#40;"location&#58;../index.php?i=nea_par&r=1"&#41;;

&#125;
else&#123;

	
		echo '<item product="',$kod,'" tem="',$tem,'" plir="',$sxolia,'"></item>',PHP_EOL; 
		&#125;
		endforeach; 
	echo '</order>',PHP_EOL; 
	
echo '</orders>',PHP_EOL; 

?>
Δουλεύει μεν αλλά όταν σε γυρνάει πάλι στην forma έχουν χαθεί όλες οι σειρές και έχει μείνει μόνο η πρώτη και αυτή χωρίς τις τιμές που έιχες.Πως θα του πω να κρατάει και τις 20 γραμμές αν έχει εισάγει με τις τιμές τους όμως για να μην τα ξαναγράφει.

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 07 Απρ 2012 23:09

Δοκίμασα αυτά nea_par.php

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

<?php

if&#40;$r!=1&#41;&#123;
$_SESSION&#91;'error'&#93;="";
$_SESSION&#91;'kod'&#93;="";
$_SESSION&#91;'tem'&#93;="";


&#125;
if&#40;$_SESSION&#91;'error'&#93;!=""&#41;&#123;
?>
<div id="error_div">
<?php
	$error="$_SESSION&#91;error&#93;";
	echo"$error";?>
    </div>
    <?php
	&#125;
	else&#123;
	?>
    <script>
	$&#40;document&#41;.ready&#40;function&#40;&#41; &#123; 
var index = $&#40;'#container tr'&#41;.length; 

$&#40;'#add'&#41;.click&#40;function&#40;&#41; &#123; 
    var newindex = index++ 
    var html = + newindex +'<tr><td><input name="data&#91;'+ newindex +'&#93;&#91;kod&#93;" type="text" style="width&#58; 150px;"></td><td><input name="data&#91;'+ newindex +'&#93;&#91;tem&#93;" type="text" style="width&#58; 30px;"></td><td><input name="data&#91;'+ newindex +'&#93;&#91;kitrina&#93;" type="text" style="width&#58; 30px;"></td><td><input name="data&#91;'+ newindex +'&#93;&#91;leuka&#93;" type="text" style="width&#58; 30px;"></td><td><input name="data&#91;'+ newindex +'&#93;&#91;dixroma&#93;" type="text" style="width&#58; 30px;"></td><td><textarea  name="data&#91;'+ newindex +'&#93;&#91;sxolia&#93;" cols="10" rows="1"></textarea></td></tr>'; 
    $&#40;'#container'&#41;.append&#40;html&#41;; 
&#125;&#41;; 
&#125;&#41;; 
	</script>
<div >
Συμπληρώστε  τα πεδία και πατήστε Αποθήκευση.Προσοχή ελέξτε καλά τον αριθμό του κωδικού και τα τεμάχια που πληκτρολογείτε.<hr />
    </div>
    <?php
	&#125;
	?>
	<form name="paragelia_form" method="post" action="par/par_se_xml.php" >
<table id="container"> 
<tr>
    <td>Ονοματεπώνυμο/εταιρία</td>
   
  </tr>
 
    

  
  
  <tr>
    <td><input name="sin" type="text" id="sin"  style="width&#58; 150px;" value=""></td>
    
	
  </tr>
  <tr>
    <td>Κωδικός</td>
    <td>Τεμάχια</td>
    <td>Κίτρινα</td>
    <td>Λευκά</td>
    <td>Δίχρωμα</td>
    <td>Σχόλια</td>
  </tr>

  <tr> 
    <td><input name="data&#91;0&#93;&#91;kod&#93;" type="text" style="width&#58; 150px;" value="<?php 
$kod="$_SESSION&#91;kod&#93;";
				  print"$kod"; ?>"></td> 
     <td><input name="data&#91;0&#93;&#91;tem&#93;" type="text" style="width&#58; 30px;" value="<?php 
$tem="$_SESSION&#91;tem&#93;";
				  print"$tem"; ?>"></td> 
     <td><input name="data&#91;0&#93;&#91;kitrina&#93;" type="text" style="width&#58; 30px;" value=""></td>
     <td><input name="data&#91;0&#93;&#91;leuka&#93;" type="text" style="width&#58; 30px;" value=""></td>
     <td><input name="data&#91;0&#93;&#91;dixroma&#93;" type="text" style="width&#58; 30px;" value=""></td>
    <td><textarea name="data&#91;0&#93;&#91;sxolia&#93;" cols="10" rows="1"></textarea></td> 
  </tr> 
</table> 
<span id="add">προσθήκη γραμμής</span>
<input type="submit"  name="submit"  id="par_save" value="Αποθήκευση παραγγελίας"></form>
</form>
και par_se_xml.php

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

<?php 
session_start&#40;&#41;;
$filename = "order.xml"; 
date_default_timezone_set&#40;'Europe/Athens'&#41;;

$imerominia=date&#40;'d/m/Y---H&#58;i&#58;s'&#41;;
$time=time&#40;&#41;;

$sin=$_POST&#91;'sin'&#93;;



header&#40;'Content-type&#58; "text/xml"; charset="utf8"'&#41;; 
header&#40;'Content-disposition&#58; attachment; filename="'.$filename.'"'&#41;; 

echo '<?xml version="1.0" encoding="utf-8" ?>',PHP_EOL; 
echo '<orders>',PHP_EOL; 

	echo '<order client="',$sin,'" orderdate="',$imerominia,'" timeint="',$time,'">',PHP_EOL; 
	$data = $_POST&#91;'data'&#93;; 

foreach&#40;$data as $row&#41;&#58; 
$kod= $row&#91;'kod'&#93;; 
$_SESSION&#91;'kod'&#93; = $kod;
$tem =$row&#91;'tem'&#93;;
$_SESSION&#91;'tem'&#93; = $tem;
$kitrina =$row&#91;'kitrina'&#93;;
$_SESSION&#91;'kitrina'&#93; = $kitrina; 
$leuka =$row&#91;'leuka'&#93;; 
$_SESSION&#91;'leuka'&#93; = $leuka;
$dixroma =$row&#91;'dixroma'&#93;; 
$_SESSION&#91;'dixroma'&#93; = $dixroma; 
$sxolia= $row&#91;'sxolia'&#93;;
$_SESSION&#91;'sxolia'&#93; = $sxolia;
 
if&#40;$kod==''&&$tem!=''&#41;&#123;
$error&#91;&#93; = '** Παρακαλώ ελέξτε όλα τα πεδία ξανά.Έχετε συμπληρώσει τεμάχια αλλά όχι κωδικό'; 
if &#40;$error&#41; &#123;
$a=''.implode&#40; '<br>',$error&#41;;
$_SESSION&#91;'error'&#93; = $a;
header&#40;"location&#58;../index.php?i=nea_par&r=1"&#41;;
&#125;

&#125;
if&#40;$kod!=''&&$tem==''&#41;&#123;
$error&#91;&#93; = '** Παρακαλώ ελέξτε όλα τα πεδία ξανά.Έχετε συμπληρώσει κωδικό αλλά όχι τεμάχια'; 
if &#40;$error&#41; &#123;
$a=''.implode&#40; '<br>',$error&#41;;
$_SESSION&#91;'error'&#93; = $a;
header&#40;"location&#58;../index.php?i=nea_par&r=1"&#41;;
&#125;

&#125;
else&#123;

	
		echo '<item product="',$kod,'" tem="',$tem,'" kitrina="',$kitrina,'" leuka="',$leuka,'" dixroma="',$dixroma,'" plir="',$sxolia,'"></item>',PHP_EOL; 
		&#125;
		endforeach; 
	echo '</order>',PHP_EOL; 
	
echo '</orders>',PHP_EOL; 

?>
και όπως είναι λογικό βρίσκει το λάθος και κρατάει μόνο την τελευταία τιμή του session.Πως μπορώ να του πω να κρατάει μία session για κάθε γραμμή αλλά και όταν βρίσκει λάθος και κανει
if ($error) {
$a=''.implode( '<br>',$error);
$_SESSION['error'] = $a;
header("location:../index.php?i=nea_par&r=1");
να μην χάνονται οι άλλες γραμμές(javascript)με τις τιμές που θα έχουν τα sessions.

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

Δεδομένα εξαγωγή από php σε αρχείο

Δημοσίευση από abeautifulmind » 09 Απρ 2012 11:15

Βέβαια υπάρχει ο μπακαλίστικος τρόπος να γράψω εγώ 150 γραμμές με 150 διαφορετικά id's για κάθε πεδίο (χωρίς javascript και πρόσθεσης γραμμής) και να κάνω έλεγχο και τα 150 πεδία ένα προς ένα στο par_se_xml.php αλλά δεν το θέλω και νομίζω δεν είναι ο σωστός τρόπος.Καμία ιδέα παιδιά με την foreach ας πούμε μπορώ να δώσω 150 διαφορετικά id's στην φόρμα και μετά με μία foreach στο par_se_xml.php να ελενξω τα 150 id's και να τα αποθηκεύσω σε 150 διαφορετικά sessions τα οποία να τα χρησιμοποιήσω σαν value στα input της φόρμας σε περίπτωση που υπάρχει λάθος για να μην ξαναγράφει ο χρήστης όλα αυτά που είχε γράψει μέχρι εκείνη την στιγμή.

Απάντηση

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

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

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