多功能按钮

时间:2013-07-23 18:48:30

标签: php mysql

我在发布文字字段和上传图片时遇到问题,此时我可以上传图片或发布文字字段。如何使用一个按钮同时发布所有内容?

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post" action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

$status_ui = "";
$status_ui = '<div><textarea id="statustext" onkeyup="statusMax(this,500)" placeholder="Description field"></textarea>';
$status_ui .= $photo_form;
$status_ui .= '<textarea id="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea></div>';
$status_ui .= '<button id="statusBtn" onclick="postToStatus(\'status_post\',\'a\',\''.$u.'\',\'statustext\',\'statustext2\')">Post</button>';

致Maximus2012

$status_ui  = "";
$status_ui .= '<div><textarea id="statustext" name="statustext" onkeyup="statusMax(this,500)"   placeholder="Description field"></textarea>';
$status_ui .= '<textarea id="statustext2" name="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea></div>';

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post"     action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   $status_ui ;
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

echo $photo_form ;

我仍然只能使用此代码上传图片,但是当我使用

$photo_form .= '<p><button id="statusBtn" onclick="postToStatus(\'status_post\',\'a\',\''.$u.'\',\'statustext\',\'statustext2\')">Post</button></p>';

而不是

$photo_form .= '<p><input type="submit" value="Upload"></p>';

所有内容都经过处理,但文字部分在一行中插入,而在另一行中成像。

这是我的postToStatus功能:

function postToStatus(action,type,user,ta,te){
var data = _(ta).value;
var data2= _(te).value;
if(data == "" && data2 == ""){
alert("Please fill in all fields");
return false;
}

我对图像解析脚本进行了一些调整,因此文本和图像放在同一行,因为图像是在文本之后上传的,而不是将文件名插入到新的行脚本中,现在正在更新该用户在其上创建的最后一行轮廓。 现在我只需要防止在任何字段为空白时发布表单。

$sql = "UPDATE status SET filename = '$db_file_name' WHERE author = '$log_username' && account_name = '$log_username' ORDER BY id DESC LIMIT 1";

2 个答案:

答案 0 :(得分:0)

您的文字字段和图片字段不属于同一表单。 看看是否有效:

$status_ui  = "";
$status_ui .= '<div><textarea id="statustext" name="statustext" onkeyup="statusMax(this,500)"   placeholder="Description field"></textarea>';
$status_ui .= '<textarea id="statustext2" name="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea></div>';

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post"     action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   $status_ui ;
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

echo $photo_form ;

答案 1 :(得分:0)

这里有两种选择。第一种是在同一表格中包含您想要的所有信息。这意味着该表单中的任何字段都将被“提交”。

这看起来像(仅合并$photo_form$status_ui

$photo_form  = '<form id="photo_form" enctype="multipart/form-data" method="post"     action="php_parsers/status_system.php">';
$photo_form .=   '<select name="gallery" required>';
$photo_form .=     '<option value="Cover">Cover</option>';
$photo_form .=   '</select>';
$photo_form .=   ' &nbsp; &nbsp; &nbsp; <b>Browse:</b> ';
$photo_form .=   '<input type="file" name="photo" accept="image/*" required>';
$photo_form .=   '<textarea id="statustext" onkeyup="statusMax(this,500)"   placeholder="Description field"></textarea>';
$photo_form .=   '<textarea id="statustext2" onkeyup="statusMax(this,200)" placeholder="Description field 2."></textarea>';
$photo_form .=   '<p><input type="submit" value="Upload"></p>';
$photo_form .= '</form>';

但是,此选项将绕过之前statusBtn发生的postToStatus()

您拥有的另一个选项(仍允许调用postToStatus())是通过您的javascript完成的。在postToStatus函数发出的AJAX / POST / GET调用之前,您可以使用javascript来抓取其他表单中的图像。