O mica problema
Moderatori: Moderatori, Start Moderator
O mica problema
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
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
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?
http://www.w3schools.com/tags/tag_select.asp
PS: de ce ai vrea sa faci asa ceva?
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?
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?
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]
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]
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);
});
"
+ 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);
});
"
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.
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.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori
