O mica problema

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

lopdog
Junior Member
Mesaje: 32
Membru din: Vin Aug 13, 2010 6:58 pm

O mica problema

Mesajde lopdog » Lun Mar 19, 2012 4:04 pm

Am un select cu optiuni si vreau ca optiunea selectata sa fie table-u in care vor fi inserate datele.

am facut asa :

HTML

<form action='actiunea.php' methond='post'>
<select name='table'>
<option name="madalina">Madalina</option>
<option name="alexandra">Alexandra</option>
</select>
</form>

PHP

conectarea la db
$tablename = $_POST['table'];
$sql="INSERT INTO `{$tablename}` (a3, b3, c3)
VALUES ('$a3','$b3','$c3')";
if (!mysql_query($sql))
{
die('Eroare: ' . mysql_error());
}
else
echo "Persoana adaugata in baza de date";


Imi zice ca nu gaseste table-u



Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Lun Mar 19, 2012 5:18 pm

pune <option value="madalina">Madalina</option> , nu "name":

http://www.w3schools.com/tags/tag_select.asp

PS: de ce ai vrea sa faci asa ceva?

lopdog
Junior Member
Mesaje: 32
Membru din: Vin Aug 13, 2010 6:58 pm

Mesajde lopdog » Lun Mar 19, 2012 5:50 pm


Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Lun Mar 19, 2012 5:54 pm


lopdog
Junior Member
Mesaje: 32
Membru din: Vin Aug 13, 2010 6:58 pm

Mesajde lopdog » Lun Mar 19, 2012 6:43 pm


Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Lun Mar 19, 2012 6:47 pm


lopdog
Junior Member
Mesaje: 32
Membru din: Vin Aug 13, 2010 6:58 pm

Mesajde lopdog » Lun Mar 19, 2012 7:28 pm

Ok devine stresanta problema.
function validate(){
var n=document.forms["addPerson"]["nume"].value;
var t=document.forms["addPerson"]["telefon"].value;
var e=document.forms["addPerson"]["email"].value;
var s=document.forms["addPerson"]["suma"].value;
if (n+t+s==null || n+t+s=="")
{
alert("Completati toate campurile");
return false;
}
else
if (n==null || n=="")
{
alert("Completati numele");
return false;
}
else
if (t==null || t=="")
{
alert("Completati telefonul");
return false;
}
else
if (s==null || s=="")
{
alert("Completati suma");
return false;
}
}

<input type="button" value="Adauga" onClick="document.addPerson.submit();validate();get();">

Atunci cand apas butonul cu inputurile goale - Mesajul este afisat " Completati toate campurile" dar imediat ce inchid mesajul , apare "Persoana adaugata in baza de date" Cum pot opri asta?

Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Lun Mar 19, 2012 9:01 pm


lopdog
Junior Member
Mesaje: 32
Membru din: Vin Aug 13, 2010 6:58 pm

Mesajde lopdog » Mie Mar 21, 2012 3:12 pm

function verify(){
var n=document.forms["addPerson"]["nume"].value;
var t=document.forms["addPerson"]["telefon"].value;
var e=document.forms["addPerson"]["email"].value;
var s=document.forms["addPerson"]["suma"].value;
if (n+t+s==null || n+t+s=="")
{
alert("Completati toate campurile");
return false;
}
if (n==null || n=="")
{
alert("Completati numele");
return false;
}

if (t==null || t=="")
{
alert("Completati telefonul");
return flse;
}

if (s==null || s=="")
{
alert("Completati suma");
return false;
}
else
{

$.post('insert.php', function(data) {
$('#rezultat').html(data);
});

}

}



<input type="button" value="Adauga" onClick="verify();">

Problema apare cand vreau sa fac submit-ul ....daca vreau sa il fac in cazul in care if-u returneaza true

else
{
document.addPerson.submit();
$.post('insert.php', function(data) {
$('#rezultat').html(data);
});
}

Ii da submit direct dupa ce a verificat alea si imi spune ca a fost adaugata persoana dar nu mai afisaza jquery-u; sare peste el ;

Am incercat
else
{
if (true){
$.post('insert.php', function(data) {
document.addPerson.submit();
$('#rezultat').html(data);
})
}
}
Imi afisaza si jquery-u dar dupa aceea imi dispare si afisaja insert.php

si am mai incercat inca vre-o 5 metode nici una cu succes . Careva o idee ? plz[/b]

Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Mie Mar 21, 2012 3:22 pm

daca vrei sa trimiti datele din formular cu AJAX trebuie scos document.addPerson.submit(). Asta face ca formularul sa fie trimis in forma clasica (redirect/refresh pagina catre locatia pusa in action-ul formului).

+ trebuie sa trimiti datele ca parametru la functia $.post
http://api.jquery.com/jQuery.post/
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});

in locul {name: "John", time: "2pm"} trebuie sa pui variabilele tale din form

Cum incerci sa faci acum este amestecat: jumate AJAX / jumate clasic.
Clasic inseamna ca faci submit() la form ori prin call-ul de js document.numeForm.submit() ori ca ii dai click pe un buton <input type="submit" ..> si va produce redirect catre URL-ul din action-ul formului si in php-ul de pe acea pagina vei avea valorile din form in $_POST.

Varianta 2 este AJAX. Nu mai are nicio treaba cu tagul form. Pur si simplu pui niste valori (perechi) in functia $.post + URL-ul catre care le trimiti si acolo, in acel PHP vei avea datele completate in $_POST.

Marea diferenta intre cele doua este prima face sa se reincarce pagina, iar cea de-a doua lucreaza asincron (in background) iar cand se termina de procesat face un apel la functia callback, in exemplu este parte cu:
" ,
function(data) {
alert("Data Loaded: " + data);
});
"

hadyh
Average Member
Mesaje: 118
Membru din: Mar Noi 30, 2010 12:57 pm

Mesajde hadyh » Mie Mar 21, 2012 5:35 pm


Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Mie Mar 21, 2012 5:39 pm


hadyh
Average Member
Mesaje: 118
Membru din: Mar Noi 30, 2010 12:57 pm

Mesajde hadyh » Mie Mar 21, 2012 5:43 pm


Avatar utilizator
matheuzzy
Senior Member
Mesaje: 383
Membru din: Dum Apr 26, 2009 4:42 pm
Localitate: Bucuresti

Mesajde matheuzzy » Mie Mar 21, 2012 5:47 pm


lopdog
Junior Member
Mesaje: 32
Membru din: Vin Aug 13, 2010 6:58 pm

Mesajde lopdog » Mie Mar 21, 2012 5:59 pm

Reformulez problema:

am jquery-u asta :

$.post('insert.php', { tablename: addPerson.table.value },
function(output){
$('#rezultat').html(output).fadeIn(1000);
});

si formu asta :

<form action="insert.php" method="POST" name="addPerson" >
<ul>
<li>Terapeut: <select name="table">
<option value="madalina" >Madalina</option>
<option value="alexandra" >Alexandra</option>
<option value="mirela" >Mirela</option></select></li>
<li>Nume: <input type="text" name="nume"></li>
<li>Telefon: <input type="text" name="telefon"></li>
<li>Email: <input type="text" name="email"></li>
<li>Suma: <input type="text" name="suma"></li>
<li><input type="button" value="Adauga" onClick="verify();"></li>
</ul></form>


si insert.php asa:


$tablename = $_POST['table'];
$sql="INSERT INTO `{$tablename}` (Nume, Telefon, Email, Suma)
VALUES ('$nume','$telefon','$email','$suma')";


De ce cand dau pe adauga nu imi gaseste $tablename-u ma gandesc ca am gresit in jquery undeva plz un help sa rezolv problema. Clar sunt un mare noob.


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori