php dosyasına POST veri almak mümkün değil

2 Cevap php

UPDATE

Bu uyarının ekran görüntüsü:

alt text

i başarıyla user_submit.php dosyaya POST verileri için aşağıdaki JQuery işlevini kullanıyorum, onun php dosya sadece unable to receive the data.

	$(function() {
	  $("#submit_js").click(function() {
	    $.post("user_submit.php", {
	      comment: $("#comment").val()
	    });
	  });
	});

Firebug consoloe bittiğindeki bunu gösterir:

<html>
<body>

Your vote was successfully registered!any text but this
</body>
</html>

Ben burada tüm user_submit.php dosya yapıştırarak ediyorum:

  <html>
<body>

<?php

$vote = $_REQUEST['vote'];
$aid = $vote;


//$comment = $_REQUEST['#comment'];
//$comment = print_r($_POST);
$comment = htmlspecialchars($_POST["comment"]);
//$comment = $_POST['comment'];
//echo htmlspecialchars($comment);
//$comment = $_POST['comment'];
//echo $comment;

    // include configuration file
    include('config.php');

    // open database connection
    $connection = mysql_connect($host, $user, $pass) or die('ERROR: Unable to connect!');

    // select database
    mysql_select_db($db) or die('ERROR: Unable to select database!');

    // update vote counter
    $query = "UPDATE answers SET acount = acount + 1 WHERE aid = $vote";
    $result = mysql_query($query);
    $cadd = "INSERT INTO comments (comment,aid) VALUES ('$comment', '$aid')";
    mysql_query($cadd);

    // close connection
    mysql_close($connection);

    // print success message    
    echo 'Your vote was successfully registered!';
    echo $comment;
    //print_r(array_count_value($comment));

?>


</body>
</html>

bana yardım edin. ben şimdi saatlerce bu ile sıkışmış edilmiştir.

** EDIT: Gönder Button HTML istediği gibi **

<div id="greetings">
    				You are voting out <b style="color: #00b0de;" id=roadiename></b>. Care to explain why?<br/><br/>
    				<textarea name="textarea" id="comment" cols="38" rows="7">textarea</textarea><br>
    				<a href="#" id="submit_js"><img src="images/submit.gif" style="border: none; float:right; padding-top: 10px;padding-right: 10px;"/></a>
    			</div>

2 Cevap

EDIT:

Ok good the screen shot means everything is getting submitted correctly to your php page. So then as we were suggesting the issue is with your SQL. Since the vote SQL seems to work fine its localized to insert youre trying to perform.

Eğer yapabilirsen, size "comments" tablosu için sql şema gönderebilirsiniz.

Ayrıca konum yaparken doğrudan sql sunucusuna komut satırı veya bir gui müşteri oluşturacak bir bazı test verileri ile aynı sorguyu runng çalıştı thathave?

for example from the commandline: mysql -u $USER -p $DATABASE INSERT INTO comments (comment,aid) VALUES ('i have something to say!', $AID);

$USER kullanıcı adınızı ve $DATABASE sizin Dbname nerede olduğunu ... youll tabii ki kullanıcı için parola istenir.

Şimdi şema yüzden neye benzediğini emin değil im aid, bir değer sağlayarak gereken bir otomatik artış ise kendi pk şey keyfi ama $AID (emin uyuyor yapmak için benzersiz eğer sütun türü -. vs yani int, metin, varchar,).

şema geri gönderebilir ve deney sorgu verir ne olursa olsun sonuç.

EDIT:

Tamam ben bunu ve daha sonra çıkışı ile sorunuzu değiştirilmesi mümkün isterim:

: # comment hala textarea kimliği olduğunu varsayarak sunulması için bu kodu (kullanın

$("#submit_js").click(function() {
  $.post(
    "user_submit.php", 
    {comment: $("#comment").val()}, 
    function(data){
        alert(data);
  });
});

Lütfen user_submit.php bu koyun ve her şeyi açıklama:

print "Request Data is:\n";
print_r($_REQUEST);
print "\n\nPost data is:\n";
print_r($_POST);

Eğer açılan uyarı penceresinde gördüğünüz geri gönderebilir.

EDIT:

i have posted the updated user_submit.php. this now even updates text in ajax. it is still unable to print the comment - amit

I think i might know what it is... Exactly what type of element is #comment? Can you post the relevant HTML from your submission page?

EDIT:

Ben nasıl ajax eserler hakkında sen karıştı düşünüyorum. Sen sadece bir düz php sayfasına bir form gönderebilirsiniz eğer, o sayfa tarayıcıya işler gibi çalıştığını varsayarak. Bu ne değildir. Bunun yerine bir sayfaya göndermek ve bir http yanıtı geri almak yerine, bir javascript değişken olarak almak tarayıcıya bu yanıtı render. Sonra bu değişken ile bir şey yapmak zorunda - gibi bir yerde sayfasına ekleyin. Sorun yanıt konum geri alma ile yapılan bir şey sığınak olduğunu.

Tamam bu yüzden ...

"@BranTheMan: then why isnt it echo'ing the text? and why isnt it adding anything to the DB? – amit"

Eğer sayfa Onun yankılamamasını anythign sen bunu söylüyorum çünkü. Ne firebug konsolunu görülen tepki organıdır. İşte $.post ile sayfanızın içine gitmez. Bu jsut çağrı yapar ve size yanıt vermek. Eğer geçerli sayfa içinde yankı istiyorsanız o zaman bunu yapmak için söylemek gerekir.

Yukarıda listelenen şeyleri örneğin:

$("#submit_js").click(function() {
  $.post(
      "user_submit.php", 
      {comment: $("#comment").val()}, 
      function(data){
         $('#submit_js').append($('body', data).html());
      });
});

Lütfen SQL gelince ben onun düzgün ekleyerek değil, neden bilmiyorum ... o güzel görünüyor. Eğer herhangi bir sql hataları için günlükleri kontrol ettiniz mi? Sorgudan dönüşünde kontrol bazı yanılma yoluyla isteyebilirsiniz.

deneyin:

$("#submit_js").click(function() {
  $.post("user_submit.php", {comment: $("#comment").val()}, function(data){
      alert(data);
      //this is the function where you would handle the returned text/html/json 
      //whatever that you're php script returns. The data is what you're seeing 
      //inside firebug.
  });
});

İşte $.post için belgelendirmesi

EDIT

Sorun bunu yapıyor bir yankı, işlemek için PHP bekliyoruz olduğunu, ancak bir AJAX isteği, çünkü javascript sunucu ona gönderir ne ile bir şeyler yapmak gerekiyor. Sizin javascript içinde işleyicisi herhangi bir tür yoktu. PHP bunu söyledim değerleri dönüyordu, ve tarayıcı sadece onunla bir şey yapmıyordu, bunu başlamıştı.

Veritabanı gibi, ben aslında db bir bağlantı yapmadan ve kullandığınız değişkenleri onlara bir şey var emin olur. Ayrıca POST komut herhangi bir $_REQUEST['vote'] değeri gönderme değil ve ilk sorgu güncellenmiyor neden olabilir ki, sizin url değil