Προς το περιεχόμενο

προβλημα με με αποστολή στοιχείων φόρμας σε αρχειο php με ajax


lolek

Προτεινόμενες αναρτήσεις

Δημοσ.

έχω μια φόρμα αναζήτησης με text και radio buttons.δεν μπορώ να στείλω τα δεδομένα

της φόρμας σε ένα php αρχειο που θα γίνει η αναζήτηση στη βάση.

 

>function showHint()
{



var str = document.getElementById("search").value;
var test = document.getElementsByName("r1");
  for (i = 0; i < test.length; i++) {
  if (test[i].checked) parameter = test[i].value;
  }
if (str.length==0)
 {
 document.getElementById("txtHint").innerHTML="";
 return;
 }
if (window.XMLHttpRequest)
 {// code for IE7+, Firefox, Chrome, Opera, Safari
 xmlhttp=new XMLHttpRequest();
 }
else
 {// code for IE6, IE5
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
xmlhttp.onreadystatechange=function()
 {
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
   {
   document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
   }
 }
http.open("GET","results.php?q="+params+" &p="+parameter, true);
xmlhttp.send();
}
</script>

Δημοσ.

λίγο πρωτόγονος ο τρόπος αυτός :P

 

Δοκίμασε το jquery framework.

αν πχ έχεις κάτι του στυλ: <form id="lalaForm" ...>.....</form> τότε μπορείς να κάνεις (δεν το θυμάμαι απ' έξω αλλα περίπου):

 

>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
 $(document).ready(function () {
  $.ajax({
    url: 'myPHPpage.php',
    data: $('#lalaForm').serialize();
    success: function(data) { alert(data);}
  });
 });
</script>

αν εκτελεστεί σωστά τότε στο success: function(data)  το data θα έχει το output της σελίδας που εκτέλεσες.

Δημοσ.

>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
 $(document).ready(function () {
  $.ajax({
    type: "POST",
    url: 'myPHPpage.php',
    data: $('#lalaForm').serialize();
    success: function(data) { alert(data);}
  });
 });
</script>

Βάζεις και το εάν θες POST ή GET

 

Όσον αφορά το 1ο Post έχεις ένα αρχείο Με όλες τις functions σου και γράφεις

>
function GetXmlHttpObject()
{
var xmlHttp=null;
try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
catch (e)
	{
		//Internet Explorer
	try
	{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
}
return xmlHttp;
}

//ME POST
function Ajax_Product(pr_id,subject,keimeno)
{	
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
	{
	 alert ("Browser does not support HTTP Request")
		return
	}

xmlHttp.open("POST", "includes/myphp.php", true);
//set t he proper headers:
   xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;  charset=UTF-8');
//send the request with the value of the container in the PHP variable $_POST['foo']
   xmlHttp.send("pr_id="+pr_id+"&subject="+subject);
   //when I get a response back, run the processMenuXML function
   xmlHttp.onreadystatechange = function ()	{
	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 	{
		var data = xmlHttp.responseText;
	
	}
}
}

//Άλλος Τρόπος
function AjaxCategories(cat_id,page)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
	{
	alert ("Browser does not support HTTP Request")
		return
	}

url="includes/show_categories.php?cat_id="+cat_id+"&page="+page;
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange= function ()	{
	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 	{
		var data = xmlHttp.responseText;
		document.getElementById("CategoriesForm").innerHTML = data;
	}		
}

xmlHttp.open("GET",url,true);
xmlHttp.send(null);		
}

Δημοσ.

βασικά έκανα ένα λάθος στην περιγραφή.Όταν στη φόρμα έχω μόνο το text και αντίστοιχα στην συνάρτηση της ajax αυτά που πρέπει,

είναι όλα καλά και μου εμφανίζονται τα αποτελέσματα που θέλω.

Το πρόβλημα είναι όταν πάω να στείλω τις τιμές των radio buttons.Τροποποιώ τον κώδικα όπως είναι παραπάνω

αλλά μετά δεν δουλεύει τίποτα.

Δημοσ.

Ωραία, αφού εντοπίσαμε ποιο είναι το πρόβλημα ορίστε και η λύση

>
for (var i=0; i < document.ΟΝΟΜΑ_ΦΟΡΜΑΣ.ΟΝΟΜΑ_ΠΕΔΙΟΥ.length; i++)
{
 if (document.ΟΝΟΜΑ_ΦΟΡΜΑΣ.ΟΝΟΜΑ_ΠΕΔΙΟΥ[i].checked)
 {
   var ΟΝΟΜΑ_ΠΕΔΙΟΥ= document.ΟΝΟΜΑ_ΦΟΡΜΑΣ.ΟΝΟΜΑ_ΠΕΔΙΟΥ[i].value;
 }
}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...